... pelo menos para alguma definição de "auto-modificação".
A tarefa
Neste desafio, sua tarefa é escrever três cordas A, Be Cque satisfaçam as seguintes propriedades.
A cadeia
Btem comprimento pelo menos 1.Para todos
n ≥ 0, a string é um programa válido (ou seja, programa executável completo ou definição de função) na sua linguagem de programação preferida. A repetição denota sobrescritos, então isso significa que as cordas , , , etc. Cada programa tem uma string como entrada e retorna uma seqüência de caracteres como saída.ABnCACABCABBCABBBCPara qualquer
m, n ≥ 0, se o programa for executado com entrada , ele retornará . Para entradas não deste formulário, o programa pode fazer qualquer coisa, incluindo falha.ABmCABnCABm*n+1C
Alguns exemplos no formato program(input) -> output:
AC(AC) -> ABC
ABC(AC) -> ABC
ABBBBBC(AC) -> ABC
AC(ABC) -> ABC
AC(ABBBBC) -> ABC
ABC(ABC) -> ABBC
ABBC(ABC) -> ABBBC
ABBBBC(ABBBC) -> ABBBBBBBBBBBBBC
ABBBC(ABBBBBBC) -> ABBBBBBBBBBBBBBBBBBBC
Regras e Pontuação
Sua pontuação é o comprimento total AeC , quanto menor a pontuação, melhor. Observe que, embora Bnão seja contado para a pontuação, ela deve ser produzida por Ae Ccomo no primeiro exemplo.
As brechas padrão não são permitidas. Os programas não têm permissão para acessar direta ou indiretamente seu próprio código-fonte (exceto quando forem fornecidos como entrada). Você é obrigado a identificar as seqüências de caracteres e A, de alguma forma, na sua resposta, e é incentivado a explicar sua solução.BC