前書き
バイパーと崖が3つではなく、わずか2ステップの距離にあるとします。
o
---
Hsss! |
';;' ___ /_\ ___ _
|
残念ながら、あなたはサディスティックな拷問の虜です。ターンごとに左または右に一歩踏み出す必要があります。そうしないと、彼らは即座にあなたを射殺します。事前にステップを計画することはできますが、最初のステップを踏んだ後は、計画を変更することはできません。(また、どろぼうもありません。彼らはあなたを撃ちます。)
突然、明るいアイデアが思い浮かびます...
あ!左右に交互にステップすることができます!右ステップ、左ステップ、右ステップ、左ステップなど...
ああああああ、それほど速くない。私が言ったように、拷問はサディスティックです。彼らはあなたがすべての一歩を踏み出すか、2番目の一歩を踏み出すか、3番目の一歩を踏み出すかなどを選択することができます。そのため、単純にシーケンスを選択すると、RLRLRL...
から始まる2番目のステップを実行するように強制できますLL
。ええとああ!あなたは毒蛇に噛まれました!闇があなたを襲い、他のすべては消え去ります...
実際には、あなたはまだ死んでいません。あなたはまだあなたの計画を考え出す必要があります。数分間それについて考えた後、あなたは運命にあることに気づきます。あなたの生存を保証する一連のステップを計画する方法はありません。あなたが思いつくことができる最高のものですRLLRLRRLLRR
。1 11の安全なステップとそれ以上。12番目のステップがの場合、R
トーチャーはすべてのステップを実行し、最後の3つのステップは崖からあなたを送り出します。12番目のステップがの場合、L
拷問者は3番目ごとのステップ(LRLL
)を実行させます。
あなたR
は、あなたの終pick をできるだけ長く遅らせることを望んで、12番目のステップとして選びます。風があなたの耳に響き渡ると、あなたは自分自身に疑問に思います...
3つのステップがある場合はどうなりますか?
スポイラー警告!
あなたはまだ死ぬでしょう。結局のところ、歩数がいくつであっても、どの選択を行っても、致命的な運命を確実に満たすためにTorturerが選択できる一連のステップがあるという点があります。2ただし、毒蛇と崖が3歩離れている場合、合計で1160歩の安全な歩を歩むことができ、4歩離れている場合、少なくとも13,000歩の安全な歩があります!3
チャレンジ
単一の整数を指定すると、崖と毒蛇が4ステップ離れていると仮定して、安全なステップのn < 13000
シーケンスを出力しn
ます。
ルール
- 完全なプログラムまたは関数のいずれかです。
- 入力は、STDINまたは同等のものを介して、または関数の引数として取得できます。
- 出力は持っている必要があります二つの異なる文字(することができ
+/-
、R/L
、1/0
、など)。 - 出力内の空白は関係ありません。
- ソリューションのハードコーディングは許可されていません。それはこの挑戦を平凡にするでしょう。
- プログラムは(理論上)十分な時間で終了するはずです。たとえば
n=13000
、1か月ほどかかりますが、1000年以上かかることはありません。つまり、総当たりはありません。(まあ、少なくともしようとし、それを避けるために。) - ライフボーナス:一連の
2000
安全な手順を提供します。これを行うと、拷問者はあなたの粘り強さ、忍耐力、そして先見の明に非常に感銘を受け、彼らはあなたを生きさせます。一度だけ。(このシーケンスを2進数として扱い、検証用に10進数を提供します。これは、回答に非常に長い時間がかかるため、すぐに終了する回答に報いることを目的としています。) - スコア:バイト、ボーナスの資格がない場合-0.75を掛けます。
1 Numberphileのスターの1人であるJames Grimeによるこの問題と「解決策」の説明は、https://www.youtube.com/watch?v = pFHsrCNtJu4のYouTubeチャンネルにあります。
2エルドスの矛盾問題として知られるこの80年の推測は、ごく最近テレンスタオによって証明されました。これについては、Quanta Magazineの非常に素晴らしい記事をご覧ください:https : //www.quantamagazine.org/20151001-tao-erdos-discrepancy-problem/。
3出典:Bordo KonevとAlexei LisitsaによるErdos 不一致推測に対するSAT攻撃。ここから取り出さ:http://arxiv.org/pdf/1402.2184v2.pdf。
n=13000
には1年、おそらく10年以内に処理できるはずです。1か月待ちn=2000
ますか?おそらくない。もしそうなら、とにかくボーナスに値する。
n=13000
と、最初の2000の指示がボーナスを獲得しますか?無意味だと思うので、おそらくあなたは何か他のものを意味しましたか?