ラジウムの小さなサンプル、感電死したクジラ、3匹のグミベアを含む非常に珍しい事故で、The Management™のソースコードの一部が変更されました。The Management™のボスは、The Management™の「悪」計画を阻止しようとして、実際に責任を持っていたのはCops©であったことをほとんど知りません。Robbers®は元のコードを取得するために雇われました。これは、悪が嫌いな人がいるからです。
注:この課題は、Unscramble the Source Codeに大きな影響を受けています。
説明
これは警官と強盗の挑戦です。
- 警官は、タスク#1を実行する(実行タスク#2が、秘密に保たれていること、また、プログラムを書き込む)ことプログラム(突然変異コード)を記述します。
- 強盗は「突然変異」を逆転しようとすると、コードを実行そのタスク#2には、この元のコードを変更します。
このチャレンジでは、タスク#1はth素数を出力し、n
タスク#2はthフィボナッチ数を出力n
します(とにかくCops©によれば、これはなんとなく悪いことです)。フィボナッチ数列は(n=1
→ 1
; n=2
→ 1
; n=3
→ 2
; ...)として定義され、素数は(n=1
→ 2
; n=2
→ 3
; n=3
→ 5
; ...)として定義されます。
警官の目標は、タスク#1とタスク#2を完了するプログラムの違いを最小限に抑えながら、タスク#2を完了するコードを強盗が再作成するのを防ぐことです。
警官のルール
警官は2つのプログラム(タスク#1を完了するプログラムとタスク#2を完了するプログラム)を作成し、次の情報を公開します。
- 最初のプログラム(出力
n
番目の素数) - 最初のプログラムと2番目のプログラム間のレーベンシュタイン編集距離
- プログラミング言語の両方のプログラムが書き込まれていることを(両方のプログラムのために同じ言語である必要があります)
次の制限が両方のプログラムに適用されます。
- 長さは128文字以下でなければなりません。
- 印刷可能なASCII(および改行も許可されます)のみを使用する必要があります。
- それらは実行するのに10秒未満でなければなら
n=45
ず、どんなもののためにも正しい出力を生成する必要はありませんn>45
。 - ハッシュ関数または暗号化関数を使用してはなりません。
強盗ルール
強盗は、警官によって指定された編集距離で、警官のプログラム(タスク#1を完了する)をタスク#2(必ずしも警官によって書かれた元のプログラムではない)を完了するプログラムに変更しようとします。
すでにクラックされた提出物を再びクラックすることはできません(提出物をクラックした最初の強盗のみがクレジットを取得します)。
提出物をクラックした後、以下を実行してください。
- この課題に付随する質問(リンク)への回答を投稿し、言語、ソリューション、および元の回答へのリンクを提供します。
- 投稿された回答にリンクするテキスト「クラック」を含むコメントを残します。
- 編集権限がある場合は警官の回答を編集します(権限がない場合は、必要な権限を持つ他の人があなたのために行うまで待つか、編集を提案します)。
得点
警官のプログラムが1週間ひびが入らない場合、警官はタスク2を完了する元のコードを(指定された編集距離で)投稿でき、それ以降は「安全」と見なされます。編集距離が最小の安全な送信が勝ちです。同点の場合、最短のプログラム(タスク#1を完了するオリジナル)が勝ちます。2つの提出物がまだ結び付けられている場合は、前の投稿が勝ちます。
強盗が警官の提出物を正常に解読した場合、強盗のスコアはその提出物の編集距離だけ上昇します。たとえば、編集距離が3の提出物と距離が5の提出物をクラックする強盗は、8ポイントを獲得します。最高スコアの強盗が勝ちます。同点の場合、スコアを獲得した強盗が最初に勝ちます。