Number Duel 数学

NimゲームとSprague-Grundyの定理

シンプルなゲームを想像してください。テーブルの上に石の山がいくつかあります。2人のプレイヤーが交互に石を取ります。各ターンで、1つの山を選んで任意の数の石を取ります(少なくとも1つ)。最後の石を取ったプレイヤーの勝ちです。

これがNimです。数学において最も重要なゲームの一つなのは、人が楽しむためというより、Nimを理解することで戦略ゲームの全家族を解くための道具が得られるからです。

基本的なゲーム

具体例から始めましょう。3つの山にそれぞれ3、4、5個の石があります。

山A: ●●●
山B: ●●●●
山C: ●●●●●
      

あなたが先手です。勝つ手は?直感では役に立ちません——答えには2進数の計算が必要です。

2進数のトリック

Charles Boutonは1901年にNimには完全な解があることを証明しました。鍵はnim和です。すべての山の大きさのXOR(排他的論理和)を2進数で計算します。

例(3、4、5の山):

  3 = 0 1 1
  4 = 1 0 0
  5 = 1 0 1
XOR ---------
      0 1 0  =  2
      

Boutonの定理:

nim和が2なので先手必勝です。必勝手は、nim和が0になるように石を取ることです。

山C(5個)から2個取ると(5→3)、新しいnim和:

011 ⊕ 100 ⊕ 011 = 000 ✓
      

その後、相手が何をしても、nim和を0に戻す手が必ずあります。

なぜXORなのか

XORが機能する理由は自己逆元性にあります:a ⊕ a = 0。nim和が0の局面では、すべての山が2進数で「ペアリング」されています。相手がペアを壊せば、あなたがペアを戻します。相手が別のペアを壊せば、あなたがそれを戻します。常に応手があります。

Nimの変種

Bashゲーム(バシェのゲーム)

N個の石の1つの山。毎回1〜K個取れる。Nが(K+1)の倍数なら後手必勝、それ以外は先手必勝。

Wythoffのゲーム

2つの山。1つの山から任意の数、または両方から同じ数取れる。負けの局面が黄金比φ = (1+√5)/2に関連する驚くべきパターンを形成します。

(1, 2), (3, 5), (4, 7), (6, 10), (8, 13)...
      

各ペアは ⌊nφ⌋ と ⌊nφ²⌋ です。これらはBeatty数列と呼ばれ、黄金比が最も無理数らしい数であるために、数列が重ならず隙間なく覆います。

Sprague-Grundyの定理

ここが画期的な部分です。1935年、Roland SpragueとPatrick Grundyが独立に証明しました:すべての公平な2人ゲームはNimの山と等価である

「公平」とは両プレイヤーが同じ手を選べるゲームです。等価とは、ゲームが特定のサイズのNimの山と同じ勝敗構造を持つことです。

各局面にGrundy数を割り当てます:

  1. 次の局面がない → Grundy数 = 0
  2. それ以外 → Grundy数 = mex(到達可能なGrundy数の集合に含まれない最小の非負整数)

複数の独立したサブゲームからなるゲームでは、全体のGrundy数 = 各サブゲームのGrundy数のXOR。Nimそのものと同じです。

Number Duelとの関係

Number Duelのゲームは純粋な公平ゲームではありませんが、同じ考え方が適用できます。

Sprague-undyの定理はこの種の分析の理論的基盤です。ゲームがいくら複雑に見えても、その下には常にNimのような構造が隠れています。

関連記事

マルバツゲームが常に引き分けになる理由

3×3魔方陣

Fifteen Duelをプレイ

Number Duelをプレイ