グレートAPIイースターエッグハントに触発されました!
概要
あなたのタスクは、可能な限り少ないステップを使用して、「コラッツ空間」(後述)で所定の整数を検索することです。
前書き
この挑戦は有名なCollatzの予想に基づいています。スーパーコラッツナンバーの印刷から抜粋しました。
このCollatzシーケンスあなたは、任意の正の整数で始まるこの例のために、我々は10を使用し、それへのステップのセットを適用する場所(も3X + 1問題と呼ばれる)は、次のとおりです。
if n is even: Divide it by 2 if n is odd: Multiply it by 3 and add 1 repeat until n = 1
このCollatz距離C(m,n)
の2つの数の間のm
とn
、この課題の目的のためには、2つの数字の間の距離であるこのCollatzグラフ(使用して次のように定義され、(この概念についての私に告げるため@tshにクレジット)21
と13
の例として):
m
(この場合、21
)のCollatzシーケンスを書き留めます。
21, 64, 32, 16, 8, 4, 2, 1
n
(この場合、13
)のCollatzシーケンスを書き留めます。
13, 40, 20, 10, 5, 16, 8, 4, 2, 1
次に、シーケンスの1つにのみ表示される数字の数をカウントします。これはm
との間のコラッツ距離として定義されn
ます。この場合、8
つまり、
21, 64, 32, 13, 40, 20, 10, 5
したがって、21
との間のCollatz距離があり13
ますC(21,13)=8
。
C(m,n)
次の素晴らしいプロパティがあります:
C(m,n)=C(n,m)
C(m,n)=0 iff. m=n
うまくいけば、の定義がC(m,n)
明確になりました。Collatzスペースで卵狩りを始めましょう!
間隔の整数:ゲームの開始時に、コントローラは、一次元で表現されるイースターエッグの位置座標を決定する[p,q]
(言い換えると、の間の整数p
とq
、両端を含みます)。
卵の位置はゲーム全体を通して一定のままです。この座標をとして示しますr
。
これで、初期推測を0にすることができ、コントローラーによって記録されます。これはあなたの0ラウンドです。幸運にも最初の場所(つまり0 = r)で正解した場合、ゲームは終了し、スコアは0
(スコアが低いほど良い)です。それ以外の場合は、第1ラウンドに入り、新しい推測値を1にします。これは、正解、つまりn = r になるまで続き、スコアはになりますn
。
0回目以降の各ラウンドでは、コントローラーは以下のフィードバックのいずれかを提供するため、与えられた情報に基づいてより良い推測を行うことができます。あなたが現在n
thラウンドにいると仮定してみましょう。したがって、推測はn
- "あなたは見つけた!" もしN = R、場合のゲームが終了し、あなたは得点
n
。 - 「あなたは近い:)」C(a n、r)<C(a n-1、r)の場合
- C(a n、r)= C(a n-1、r)の場合、「あなたは卵の周りを旋回しています」
- 「あなたはもっと遠い:(」C(a n、r)> C(a n-1、r)の場合
いくつかのバイトを節約するために、上記の順序で、応答を「右」、「近い」、「同じ」、「より太い」と呼びます。
これがのサンプルゲームp=1,q=15
です。
- 0 = 10
- 1 = 11、応答: "より近いです"
- 2 = 13、応答: "遠く"
- 3 = 4、応答: "遠く"
- 4 = 3、応答: "より近いです"
- 5 = 5、レスポンス: "同じ"
- 6 = 7、レスポンス: "右"
スコア:6
。
チャレンジ
最高のスコアでゲームをプレイするための決定的戦略を設計しp=51, q=562
ます。
回答では、アルゴリズムを詳細に説明する必要があります。アルゴリズムの解明に役立つコードを添付できます。これはcodegolfではないので、読みやすいコードを書くことをお勧めします。
回答には、考えられるすべてのケースで達成できる最悪のスコアを含める必要があり、最悪のスコアの勝者がr
勝ちます。tieの場合、可能なすべてr
のs(これも回答に含める必要があります)の平均スコアが高いアルゴリズムが勝ちます。タイブレーカーはこれ以上なく、最終的には複数の勝者になる可能性があります。
スペック
- 繰り返し
r
ますが、間隔にあります[51,562]
。 - デフォルトの抜け穴が適用されます。
バウンティ(最初の回答が投稿された後に追加されます)
個人的には、範囲内ですべての推測が行われ、[51,562]
それでもかなり低い最低スコアを保持している答えに賞金を提供する場合があります。