更新:時間制限が削除されました。出力を記述することができる必要があります-新しいルールを参照してください。
パングラムはのような、少なくとも一度アルファベットのすべての文字を使用する文です。
完璧なパングラムは正確に一度、すべての文字を使用しています。
95個の印刷可能なASCII文字(16進コード20から7E)をアルファベットとして使用して、完璧なパングラムであるプログラムの作成を検討してください。
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
このようなプログラムには、正確に95文字が含まれている必要があり、各印刷可能なASCII文字は1回だけ、ただし任意の順序で発生します。(したがって95!= 1.03×10 148の可能性があります。)
あなたの仕事は、stdoutに印刷される印刷可能なASCII文字の数が可能な限り多くなるように(つまり多作になるように)このプログラムを書くことです。
スコアは、プログラムが出力する印刷可能なASCII文字の数です(明確な量ではなく、合計量:スコア4対スコア3)AABC
ABC
。最高のスコアが勝ちます。
詳細
- 出力には任意の文字(重複を含む)が含まれる場合がありますが、95個の印刷可能なASCII文字のインスタンスのみがスコアにカウントされます。
- このJSFiddleを使用して、文字列内の印刷可能なASCII文字の数をカウントできます。
- 言語にstdoutがない場合は、最も適切な代替手段を使用してください。
- あなたのプログラム...
- 有限のランタイムが必要です(時間制限は削除されています)
- 出力が有限でなければならない
- コメントを含めることができます
- (キャッチされない)エラーなしでコンパイルおよび実行する必要があります
- 入力を促したり、入力したりしてはいけません
- 時不変で決定論的でなければならない
- 外部ライブラリを使用しないでください
- ネットワーク接続を必要としないでください
- 外部ファイルを使用してはいけません
- (ファイル名を変更してもプログラムの動作が変わらない限り、プログラムファイル自体を使用できます)
- このタスクが不可能な場合、言語があまりにも悪いです。
- 投稿に収まるには大きすぎる場合は、正確な出力を提供するか、正確に説明する必要があります。実際にプログラムを実行する必要はありません。限り、それはようですそれが有効であるメモリの無限の量をコンピューターに有限の時間で実行されます。
例
この単純なPython 2プログラムは、可能な解決策です。
print 9876543210#!"$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmoqsuvwxyz{|}~
9876543210
10個の印刷可能なASCII文字を含む10個のスコアを出力します。
a
ました文字カウント。とにかく、私は95を誇りに思っています。たとえ小さなものであってもです。サイズがすべてではありません。