14
警官と強盗のハードコーディング(強盗)
これは警官と強盗の挑戦です。この課題に対する警官のスレッドはこちら 考えるべき興味深い質問は次のとおりです。 番号のシーケンスがある場合、どのシーケンスについて話しているかが明確になる前に、それらの番号をいくつ提供する必要がありますか? 私はから順に、正の整数についての話をしたい場合は例えば111、私が言うことができる1,2,3,…1,2,3,…1,2,3, \dots、それは本当に十分でしょうか? この質問に答える1つの方法があり、コードゴルファーになるには、コードゴルフが関係します。これらの用語を生成する最短コードがシーケンスのすべての用語を生成する場合、シーケンスの十分な用語を提供しました。これをcode-golfの観点から考えると、テストケースを通過する最短のコードが目的のタスクを実行するように、十分なテストケースを提供したことになります。 チャレンジ この挑戦は警官と強盗の挑戦です。どの警官がテストケースを提示し、強盗は、意図されたシーケンス以外のテストケースをスプーフィングするためのより短い方法を見つける必要があります。警官は次のものを提示します。 入力として正の整数を受け取り、出力として整数を生成するコード。このコードは、0個または1個のインデックスを付けることができますが、インデックスが何であるかを明確にする必要があります。このコードはシーケンスを定義します。 出力に影響する可能性のある関連するプラットフォームまたは言語の要件(longintのサイズなど)。 コードによって計算されたシーケンスの最初のn項とともに、数値。これらは「テストケース」として機能します。nnnnnn 強盗は、提示されたものよりも短い同じ言語のプログラムを見つけ、すべてのテストケースに合格します(最初の入力に対して警官のコードと同じ出力を生成します)。強盗のコードは、警官のプログラムからの出力がnよりも大きい数で異なっていなければなりません。nnnnnn 得点 強盗は、発見されたクラックの数でスコアが付けられ、クラックが多いほど良くなります。元のクラックよりも短い有効な回答を見つけることにより、回答を再びクラックすることができます。2回目に答えがクラッキングされた場合、ポイントは最初ではなく2番目のクラッカーに与えられます。