◆広島県 清川 育男さんからの解答。
答えは排他的論理和を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
もし、最初が7,6,5の山とするとAから4個取り、3,6,5にします。
もし、最初が6,7,5の山とすると、Aから4個取り、2,7,5にします。
アルゴリズムから言うと、何通りも解のある場合はAで調節しています。
◆広島県 kazaruss さんからの解答。
「3つのうち2つの山にして、その2つの山の数が同数になるように取っていく。」
【コメント】
これはとても現実的な作戦で、このように相手の真似をするのは、この種の問題によくでてくる作戦だと思います。
◆大阪府の小学校1年生 カズ さんからの解答。
全ての山に1つずつ置き、自分から取っていく。
ちょっとずるいかも・・・・・(~_~;)