七五三ゲームに勝つためには、負け必須状態にして、相手に渡すことです。
つまり、現在の状態が負け必須状態なのかどうか、負け必須状態にするにはどうすればよいか、ということが分かれば、よいわけです。
実は負け必須状態は計算により判定することができます。
(1)各段の本数がすべて0または1の場合
各段の合計が奇数ならば負け必須状態。
(2)(1)以外の場合
各段の本数を2進数に変換する。
各桁同士を合計する。
各桁の合計がすべて偶数ならば負け必須状態。
例を挙げます。
(1)については
1
1-1-1
が該当します。
(2)については「2-5-7」について考えます。
各段を2進数に変換します。
2→010
5→101
7→111
各桁を合計します。
0+1+1=2
1+0+1=2
0+1+1=2
各桁が偶数になりました。これは負け必須状態です。
もし自分の番が負け必須状態になったどうしようもありません。相手が必勝法を知らないことを祈ってどこか1本だけ抹消してください。
負け必須状態でなければどうやれば負け必須状態にして相手に渡せるかを考えます。
実は、負け必須状態でなければ、必ず負け必須状態にすることができます。
「3-5-7」の場合を考えます。
3→011
5→101
7→111
各桁の合計は2,2,3ですので、負け必須状態ではありません。
3となっている右端を偶数にすれば負け必須状態になります。
例えば3を2にすれば
2→010
ですから、各桁の合計は2,2,2となって負け必須状態になります。
今は「七五三ゲーム」だから3段限定ですが、この判定方法は実は何段になっても使えます。
また
|||||
を
|||||
のように中を抹消する場合は
||
||
のように2段に分かれたと考えればよいです。
最後に2進数への変換表を載せておきます。
1→001
2→010
3→011
4→100
5→101
6→110
7→111
コメント