『三山くずし』

『三山くずし』解答


◆広島県 清川 育男さんからの解答。

答えは排他的論理和を0にして相手に手を渡すです。
例えば、2、2、3を設定して 人間が先手を取り、1、2、3にしてコンピュータに手を渡すと

   (0,1,0)(0,1,0)(0,1,1)
>>>(0,0,1)(0,1,0)(0,1,1)

で先手の人間の勝ち。

最後の1つを取った方が負けのルールの方がやや複雑になりますよね。


【コメント】

 実際には計算するのが大変なのですが、2進法できちんと解析できますね。
実戦的には、必勝パターンをいくつか憶える方がよいかもしれませんが。


◆広島県 清川 育男さんからの質問。

 例えば、5,6,7の山とすると、勝つ手は3通りあります。

  1,6,7
  5,2,7
  5,6,3 の3通りです。

 このようなとき、コンピュータ(プログラム)はどの手を選択するのでしょう。

 それから、これは余計なことですが同数の2つの山になったとき、1個ずつ取るのは、同数の法則をかえって見抜かれるのでは。


【コメント】

2つめの質問は、まあいいでしょう。
数学のページですから、見破ってもらったほうがよいということで。

1つめの質問について実験したら1、6、7になりました。

 0101←5
 0110←6
+0111←7
――――――
 0322

3になっているところを偶数に直すため、0101の2つ目の1、つまり十進の4をAからひきます。

もし、最初が7,6,5の山とするとAから4個取り、3,6,5にします。
もし、最初が6,7,5の山とすると、Aから4個取り、2,7,5にします。
アルゴリズムから言うと、何通りも解のある場合はAで調節しています。


◆広島県 kazaruss さんからの解答。

「3つのうち2つの山にして、その2つの山の数が同数になるように取っていく。」


【コメント】

これはとても現実的な作戦で、このように相手の真似をするのは、この種の問題によくでてくる作戦だと思います。


◆大阪府の小学校1年生 カズ さんからの解答。

全ての山に1つずつ置き、自分から取っていく。
ちょっとずるいかも・・・・・(~_~;)


 『三山くずし』へ

 数学の部屋へもどる