Los 9 mil millones de nombres de Dios es una historia corta de Arthur C. Clarke. Se trata de un grupo de monjes tibetanos cuya orden se dedica a escribir todos los posibles nombres de Dios, escritos en su propio alfabeto. Esencialmente, se dedican a escribir todas las permutaciones posibles de su alfabeto, restringidas por algunas reglas. En la historia, el monasterio contrata a algunos ingenieros para que escriban un programa que haga todo el trabajo por ellos. Tu objetivo es escribir ese programa.
Reglas:
El alfabeto del monje usa 13 caracteres (según mis estimaciones). Puede usar
ABCDEFGHIJKLMo algún otro conjunto de 13 caracteres.La longitud mínima de un posible nombre es de 1 carácter. La longitud máxima es de 9 caracteres.
Ningún personaje puede repetir más de 3 veces seguidas.
AAABAes un nombre válido, peroAAAABno lo es.Su programa debe imprimir (en un archivo) todos los nombres posibles en secuencia de
AaMMMLMMMLM, separados por cualquier carácter que no esté en el alfabeto (líneas nuevas, punto y coma, lo que sea).Este es el código de golf, y puede usar cualquier idioma. La solución más corta para el 1 de junio de 2014 gana.
Editar: los nombres deben comenzar Ay terminar con MMMLMMMLM, progresando a través de todos los miles de millones de nombres secuencialmente. Pero la secuencia particular depende de usted. Puede imprimir primero todos los nombres de 1 letra, luego todos los nombres de 2 letras, etc. O puede imprimir todos los nombres que comienzan con A, luego todos los que comienzan con B, o algún otro patrón. Pero un humano debería poder leer el archivo y confirmar que están todos allí y en el orden lógico que elija, suponiendo que tengan el tiempo.
f(k) = k^9 + k^8 + k^7 - 5*k^6 + k^5 + k^4 + 4*k^3 - 2*k^2 + k. Implementación de Sage: goo.gl/0srwhq
105.8GBTodo dicho y hecho! Me alegro de que las estrellas no se apagaran ... ¿o quizás tengas que imprimir la lista para que eso suceda ...?