«9 миллиардов имен Бога» - это рассказ Артура Кларка. Речь идет о группе тибетских монахов, чей орден посвящен записи всех возможных имен Бога, написанных на их собственном алфавите. По сути, они посвящены написанию каждой возможной перестановки своего алфавита, ограниченного несколькими правилами. В этой истории монастырь нанимает инженеров для написания программы, которая сделает всю работу за них. Ваша цель - написать эту программу.
Правила:
Алфавит монаха использует 13 символов (по моим оценкам). Вы можете использовать
ABCDEFGHIJKLM
или другой набор из 13 символов.Минимальная длина возможного имени - 1 символ. Максимальная длина составляет 9 символов.
Ни один персонаж не может повторяться более 3 раз подряд.
AAABA
является действительным именем, ноAAAAB
это не так.Ваша программа должна распечатать (в файл) каждое возможное имя в последовательности от
A
доMMMLMMMLM
, разделенных любым символом не в алфавите (переводы строки, точки с запятой, что угодно).Это код-гольф, и вы можете использовать любой язык. Самое короткое решение к 1 июня 2014 года выигрывает.
Изменить: имена должны начинаться с A
и заканчиваться MMMLMMMLM
, последовательно проходя через все миллиарды имен. Но конкретная последовательность зависит от вас. Вы можете сначала распечатать все однобуквенные имена, затем все двухбуквенные имена и т. Д. Или вы можете распечатать все имена, начинающиеся с 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
все сказано и сделано! Я рад, что звезды не погасли ... или, может быть, вам нужно распечатать список, чтобы это произошло ...?