典型的なゲーム理論の問題です。プレイヤーが最適にプレイするということは、どのプレイヤーも勝利の可能性を最大化するような動きをすることを意味します (プレイヤー 2 がチャンスを得たとき、彼も同じことを喜んで行うことを考慮してください)。
この場合、許可されている移動を見てみましょう。
必要に応じて、数の美しさはそのままで、美しさをk
持たなければなりません。1
つまり、1 ビット セットのみです (例00000100
) 。
さらに説明するために、8ビットの数値しかないと仮定しましょう。
よく見ると、 の美しN
さが変わらないために、ビットがセットされているk
のは、インデックス (の 1 つ) であり、左に隣接しています。例を挙げます:N
0
1
N
としましょう01010001
。今、k は00100000
,00001000
です。あなたが見ればN-k
美しさは変わらない。1
操作後、が右に移動し、したがって左に移動することに気付くでしょう0
。たとえば、いつN=01010001
とk=00100000
(N-k) = 00110001
.
また、ゲームの終了位置は、すべて0's
が左になり、すべて1's
が右になります( 00000111
)。与えられた数値から可能な移動回数を数えることができますN
。奇数の場合は開始したプレーヤーが勝ち、そうでない場合は負けます。
そのような動きの数を数えるのは簡単な数え上げ問題です。