言語がサポートする5文字を選択します。5つあります!= 5×4×3×2×1 = 120個の方法で、これらを各文字を1回ずつ含む5文字の文字列に配置できます。120の順列。
120の各文字列が言語で実行されるときに、生成される120の出力が1から120までの一意の整数になるように、文字を選択します。
つまり、単一の数値を出力する実行可能コードを生成する5文字の120個の順列のそれぞれについて、それらすべての数値のセットが1から120までの整数のセットにできるだけ近く一致するようにします。
したがって、理想的には、最初の順列はを出力し1
、次2
、次3
、次へと続きます120
。しかし、その理想はほとんどの言語と文字にとっておそらく不可能です。
5文字の文字列は次のように実行できます。
- 入力のないプログラム
- 引数なしの関数
- REPLのコマンド
必要に応じて、異なる方法で異なる文字列を実行できます
出力をカウントするには、次のような通常の方法での単一の整数出力である必要があります。
- 標準出力に印刷される
- 関数によって返された
- REPL式の結果
コードは正常に終了するはずです(最初に数値が出力されている限り、エラーが発生する可能性があります)。まったく実行されないコードでも問題ありません。(存在しない)出力だけはカウントされません。異なる出力が言語の標準でない限り、出力される数値は10進数でなければなりません。
1から120の最も明確な数字を生成するサブミッションが勝ちます。同点の場合は、以前の提出が優先されます。
ノート
- 5つのキャラクターがすべて異なる必要はありませんが、もちろんキャラクターが重複していると、順列の効果的な数が減ります。
32.0
countやplain などのフロート出力32
。(しかし、32.01
そうではありません。)032
countやplain などの先行ゼロ32
。- 有効な出力は確定的であり、時間に対して不変である必要があります。
- バイトではなく文字を扱っています。
例
文字123+*
は、Python(または多くの言語)のREPLの合理的な最初の選択肢です。結果の120の順列と出力は次のとおりです。
123+* n/a
123*+ n/a
12+3* n/a
12+*3 n/a
12*3+ n/a
12*+3 36
132+* n/a
132*+ n/a
13+2* n/a
13+*2 n/a
13*2+ n/a
13*+2 26
1+23* n/a
1+2*3 7
1+32* n/a
1+3*2 7
1+*23 n/a
1+*32 n/a
1*23+ n/a
1*2+3 5
1*32+ n/a
1*3+2 5
1*+23 23
1*+32 32
213+* n/a
213*+ n/a
21+3* n/a
21+*3 n/a
21*3+ n/a
21*+3 63
231+* n/a
231*+ n/a
23+1* n/a
23+*1 n/a
23*1+ n/a
23*+1 23
2+13* n/a
2+1*3 5
2+31* n/a
2+3*1 5
2+*13 n/a
2+*31 n/a
2*13+ n/a
2*1+3 5
2*31+ n/a
2*3+1 7
2*+13 26
2*+31 62
312+* n/a
312*+ n/a
31+2* n/a
31+*2 n/a
31*2+ n/a
31*+2 62
321+* n/a
321*+ n/a
32+1* n/a
32+*1 n/a
32*1+ n/a
32*+1 32
3+12* n/a
3+1*2 5
3+21* n/a
3+2*1 5
3+*12 n/a
3+*21 n/a
3*12+ n/a
3*1+2 5
3*21+ n/a
3*2+1 7
3*+12 36
3*+21 63
+123* n/a
+12*3 36
+132* n/a
+13*2 26
+1*23 23
+1*32 32
+213* n/a
+21*3 63
+231* n/a
+23*1 23
+2*13 26
+2*31 62
+312* n/a
+31*2 62
+321* n/a
+32*1 32
+3*12 36
+3*21 63
+*123 n/a
+*132 n/a
+*213 n/a
+*231 n/a
+*312 n/a
+*321 n/a
*123+ n/a
*12+3 n/a
*132+ n/a
*13+2 n/a
*1+23 n/a
*1+32 n/a
*213+ n/a
*21+3 n/a
*231+ n/a
*23+1 n/a
*2+13 n/a
*2+31 n/a
*312+ n/a
*31+2 n/a
*321+ n/a
*32+1 n/a
*3+12 n/a
*3+21 n/a
*+123 n/a
*+132 n/a
*+213 n/a
*+231 n/a
*+312 n/a
*+321 n/a
幸運にも1〜120の範囲内で36個の番号が生成されます。
36, 26, 7, 7, 5, 5, 23, 32, 63, 23, 5, 5, 5, 7, 26, 62, 62, 32, 5, 5, 5, 7, 36, 63, 36, 26, 23, 32, 63, 23, 26, 62, 62, 32, 36, 63
ただし、そのうち8つだけが一意です。
36, 26, 7, 5, 23, 32, 63, 62
したがって、そのような提出は、最大120のうち8のみを獲得します。
c
-like言語では不可能なようです!!!