Os 9 bilhões de nomes de Deus é um conto de Arthur C. Clarke. É sobre um grupo de monges tibetanos cuja ordem é dedicada a escrever todos os nomes possíveis de Deus, escritos em seu próprio alfabeto. Essencialmente, eles são dedicados a escrever todas as permutações possíveis de seu alfabeto, restritas por algumas regras. Na história, o mosteiro contrata alguns engenheiros para escrever um programa para fazer todo o trabalho para eles. Seu objetivo é escrever esse programa.
Regras:
O alfabeto do monge usa 13 caracteres (de acordo com minhas estimativas). Você pode usar
ABCDEFGHIJKLMou outro conjunto de 13 caracteres.O comprimento mínimo de um nome possível é de 1 caractere. O comprimento máximo é de 9 caracteres.
Nenhum personagem pode repetir mais de 3 vezes seguidas.
AAABAé um nome válido, masAAAABnão é.Seu programa deve imprimir (em um arquivo) todos os nomes possíveis em sequência de
AparaMMMLMMMLM, separados por qualquer caractere que não esteja no alfabeto (novas linhas, ponto e vírgula, qualquer que seja).Isso é código-golfe e você pode usar qualquer idioma. A solução mais curta até 1º de junho de 2014 vence.
Editar: Os nomes devem começar Ae terminar com MMMLMMMLM, progredindo por todos os bilhões de nomes sequencialmente. Mas a sequência específica é com você. Você pode imprimir todos os 1-letra nomes em primeiro lugar, em seguida, todos os nomes de 2 letras, etc. Ou você pode imprimir todos os nomes que começam com A, em seguida, todos aqueles que começam com B, ou algum outro padrão. Mas um humano deve ser capaz de ler o arquivo e confirmar se está tudo lá e na ordem lógica que você escolher, supondo que ele tenha tempo.
f(k) = k^9 + k^8 + k^7 - 5*k^6 + k^5 + k^4 + 4*k^3 - 2*k^2 + k. Implementação Sage: goo.gl/0srwhq
105.8GBtudo dito e feito! Fico feliz que as estrelas não tenham saído ... ou talvez você precise imprimir a lista para que isso aconteça ...?