神の90億の名前は、アーサーC.クラークによる短編です。それは、自分のアルファベットで書かれた神のすべての可能な名前を書き留めることに専念しているチベットの僧ksのグループについてです。基本的に、彼らはいくつかのルールによって制限されたアルファベットのあらゆる可能な順列を書くことに専念しています。物語の中で、修道院は何人かのエンジニアを雇って、彼らのためにすべての仕事をするプログラムを書くようにしています。あなたの目標はそのプログラムを書くことです。
ルール:
僧kのアルファベットは13文字を使用しています(私の推定によると)。
ABCDEFGHIJKLM
または13文字のその他のセットを使用できます。可能な名前の最小長は1文字です。最大長は9文字です。
キャラクターは連続して3回以上繰り返すことはできません。
AAABA
は有効な名前ですが、そうでAAAAB
はありません。プログラムは、アルファベット順ではない任意の文字(改行、セミコロン、その他)で区切られた
A
to から順に、可能なすべての名前を(ファイルに)出力する必要がありますMMMLMMMLM
。これはコードゴルフであり、任意の言語を使用できます。2014年6月1日までの最短のソリューションが勝利します。
編集:名前はで始まり、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
すべて言って完了しました!星が消えなかったことをうれしく思います...またはそれを実現するためにリストを印刷する必要があるかもしれません...?