9 мільярдів імен Божих - це коротка історія Артура К. Кларка. Йдеться про групу тибетських ченців, наказ яких присвячений запису всіх можливих імен Бога, написаних власним алфавітом. По суті, вони присвячені написанню всіх можливих перестановок свого алфавіту, обмежених кількома правилами. У сюжеті монастир наймає деяких інженерів, щоб написати програму, щоб виконати всю роботу за них. Ваша мета - написати цю програму.
Правила:
В алфавіті ченця використовується 13 символів (за моїми оцінками). Ви можете використовувати
ABCDEFGHIJKLM
або інший набір з 13 символів.Мінімальна довжина можливого імені - 1 символ. Максимальна довжина - 9 символів.
Жоден символ не може повторюватися більше 3 разів поспіль.
AAABA
є дійсним ім'ям, алеAAAAB
це не так.Ваша програма повинна роздрукувати (у файл) всі можливі імена в послідовності від
A
доMMMLMMMLM
, відокремлених будь-яким символом не в алфавіті (нові рядки, напівколонки, що завгодно).Це код-гольф, і ви можете використовувати будь-яку мову. Виграє найкоротше рішення до 1 червня 2014 року.
Редагувати: імена повинні починатися A
і закінчуватися MMMLMMMLM
, просуваючись по всіх мільярдах імен послідовно. Але конкретна послідовність залежить від вас. Ви можете спочатку роздрукувати всі 1-літерні імена, потім усі 2-літерні імена тощо. Або ви можете надрукувати всі імена, починаючи з A
, потім усі ті, що починаються з B
, або якийсь інший шаблон. Але людина повинна мати можливість прочитати файл і підтвердити, що вони всі є, і в будь-якому логічному порядку ви виберете, якщо припустити, що у них є час.
f(k) = k^9 + k^8 + k^7 - 5*k^6 + k^5 + k^4 + 4*k^3 - 2*k^2 + k
. Реалізація мудреця: goo.gl/0srwhq
105.8GB
все сказано і зроблено! Я радий, що зірки не вийшли ... або, можливо, вам доведеться роздрукувати список, щоб це сталося ...?