『碁石取りゲーム』

『碁石取りゲーム』解答


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

先手が勝つ場合はコンピュータが先手を取ります。
後手が勝つ場合は人間側に先手を強制します。
すなわち最初に数が決まった状態で先手必勝か後手必勝かが判ります。
本来先手に有利なゲームです。
その判定方法は、4の倍数のときだけ後手必勝です。
それ以外は先手必勝です。
例えば 127を入力したとします。
127=31×4+3 となりますから、当然コンピュータが先手をとり3個取ります。
127−3=124=31×4
このように4の倍数を残して手をわたします。

以上がコンピュータのアルゴリズムです。


【コメント】

完全に見破られましたね。
4個の碁石を残して相手の手番にすれば、相手は1〜3個の碁石を必ず残すことになりますから必勝になるのですね。
したがって碁石の個数を常に4の倍数にして相手に手を渡すのがミソです。
ソフトがあると見破りやすいのが欠点ですね。


◆京都府の小学生 わかさ ゆう さんからの解答。

まず、碁石のかずが、4で割り切れる数のときをA、4で割って1余る時をB、2余るときをC、3余るときをDとします。

Aの場合は、相手からやらせて相手が1個とった場合、自分が3個とり相手が2個とった場合、自分は2個とるというように、相手がとった分と自分のとった分が、4になるようにとれば必ず勝てる。

Bの場合は、Aのようにやると1個余る。
それを相手がとって、自分はとる碁石がなくなり敗けてしまうので、あらかじめ余る1個をとる。
それから、Aの場合のようにすると碁石が余らないので勝てます。

CやDの場合も、あらかじめ余る個数を自分がとっておけば、余りがなくなり勝てます。

感想:この答えがわかったとき、どうせ勝てないと知って「このコンピューター、せこいなあ。」と思いました。

【コメント】

たしかにちょっとせこいんです。(^_^;
数学の勉強ということでかんべんしてくださいね。
友だちとこのゲームを実際にやってみたらどうでしょうか。
(ときどき負けてあげるのがこつです。さらに「せこい」けど!)

それにしてもこれだけきちんと説明をかけるというのはすばらしいですね。
小学生の方からの解答というのを本当にうれしく思います。


◆神奈川県 せいちゃん からのコメント。

これ、私が小学生のとき(今25歳)ビッケという(小さい海賊)漫画でやってたよ。
だからすぐ答えは分かった。


◆埼玉県の中学校3年生 MASTERさんからの解答。

コンピューターは、はじめに決められた数に対して、残りが4の倍数になるように、石を取っていきます。
そして、相手が石を取ると、また残りが4の倍数になるように石を取ります。
例えば、

相手が1個石を取ったらコンピューターは3個石を取る。
相手が2個石を取ったらコンピューターは2個石を取る。
相手が3個石を取ったらコンピューターは1個石を取る。

というようになり、最後の石はコンピューターに取られてしまいます。

コンピューターに勝つためには、はじめの石を4の倍数にすれば、コンピューターは残りを4の倍数にすることができず、
あとは自分が残りを4の倍数にしていけば勝つことができます。

【コメント】

 こういうゲームの必勝法はきれいですね。
ちなみに、このようなゲームについての考え方を最初に研究した方にちなんで、グランディーの方法といいます。


◆宮崎県の高校生 Fractaly さんからの解答。

これ知ってますよ。
つまり、コンピュータは自分が取った後に4の倍数が来るように取ってるんですね。

始めが4の倍数だったら、こちらを先手にしますからね。

で、こちらが1個取ったら、相手は3個、
こちらが2個取ったら、相手は2個、
こちらが3個取ったら、相手は1個、
こんな風に取れば最後に必ず4個残ります。

こちらは1〜3個までしか取れず、残るのは1〜3個です。
これならコンピュータが必ず勝ちますね。


◆秋田県の小学生 のっこ さんからの解答。

コンピューターは、

私 3  COM 1
私 2  COM 2
私 1  COM 3

という風に、私とコンピューターの石の和が「4」になるようにしている・・・。
と思います。


◆栃木県の高校生 seren さんからの解答。

1〜3までの数を選ぶことが出来るので勝つ為には自分が取るときに残りが1〜3個になっていれば良い。
つまり相手がとる時に残り4個ならば必然的に勝ちとなる。

さて、これで勝つ為の条件が出てきました。
それでは相手の時に残り4個にするにはどうするか?
それには相手がとる時に残りが4の倍数になっていれば良いのです。
そうすれば相手が1〜3のうちどれを選んでも、その数に足して4になるようにとっていけば、相手がとる時の残りは常に4の倍数となり、そのまま減らしていけば相手の番に残り4個となります。


◆群馬県の中学校3年生 aki さんからの解答。

コンピューターが最初に取ったとき、残りの個数が4の倍数になるようにする。
次からは、相手が取った数にたして4になるようにコンピューターが取る。


◆大阪府 Beatle さんからの解答。

コンピュータは、常に4の倍数になるように残している。
最大3個までしか取れないので、この方式でいくと必ず4個残りコンピュータが勝つようになっている。


◆京都府の高校生 まいか さんからの解答。

4の倍数を残して,相手の番にすれば勝つ事ができます。
でも、コンピューターとすれば、勝てません…。
だって、始めに,4の倍数を設定したら「あなたから…」ってなるし、4の倍数じゃなければ,コンピューターから始まり,4の倍数を残されてしまいます。


◆神奈川県の小学生 pokoko さんからの解答。

3を取ればコンピューターが1を取る。
2を取ればコンピューターが2を取る。
1を取ればコンピューターが3を取る。
ということは、合計で4を取っていることになります。
だから、コンピューターが勝ってしまいます。


◆岡山県 Sync さんからの解答。

もうちょっと一般的な解法を…

残す数=(1度に取れる最小の数+1度に取れる最大の数)の倍数

でOKです。

TVでやってる某番組の4人でやってる同様のゲーム

このゲームを2人組対2人組と考えると、

1チームが1度に取れる最小の数=2
1チームが1度に取れる最大の数=6

先の解法をちょっとひねって、相手チームに

(1度に取れる最小の数+1度に取れる最大の数)の倍数 +1度に取れる最小の数
で残すようにすれば、絶対に自分のチームは勝つことができます。

100−(8の倍数+2)を言って、相手チームに交代するようにすればいいんです。

…つまりいんちきですね(笑)


◆香川県の中学校1年生 植岡 頌悟 さんからの解答。

こちらが1を出すと 3
2を出すと 2
3を出すと 1 を出しています。

2人あわせて4にしているのです。
それだと必ず後手が勝つことになります。


◆神奈川県の小学生 てつろー さんからの解答。

このゲームで、コンピュータに勝つ方法はありません。

〈コンピュータの作戦〉


◆栃木県の中学校1年生 あはは。 さんからの解答。

自分がとった碁石の数が、1個だとしたら、コンピュータは、3個といった感じで、
(自分+コンピュータ)の数の合計が、4になるようになっているのです!


◆熊本県の中学校3年生 紫苑 さんからの解答。

いずれにしても、最初にコンピュータが碁石の数を4の倍数になるように設定してしまうわけですね。
そうすれば後は、4−(自分が取った数)だけコンピュータが碁石をとれば、コンピュータは必勝、ということです。


◆長野県の中学校2年生 佐登志 さんからの解答。

コンピュータは、4の倍数にしようとしてくる。
これが必勝法ですね。
都合のいいときに先手を取られては、勝ち目はないですよ。
僕らの遊びにこれに似たものがあります。
1から初めて、1〜3までいうことができ、30をいった方が負けというゲームです。
これにも、近い必勝法が使えますね。


◆山形県の小学生 @ さんからの解答。

こんなの簡単です。
コンピュータは、まず最初に4で割り切れる数(整数)にします。
そして、(4-あいてがとったかず)の答えの数を取ります。
たったそれだけで100%コンピュータが勝ちます。


◆熊本県の高校生 Trisha Foster さんからの解答。

答えは、ズバリ”4の倍数”に碁石の数を合わせるといった所でしょうか。

そこで俺は、碁石の数を最初から4の倍数に合わせてみたんですが、(例えば32など)
今度は「あなたからどうぞ」って、勝てるわけねぇー!、つ、強すぎる。
つーか卑怯すぎる!

まぁ、そんな感じで楽しい高校生活をエンジョイしてるってわけさ。


◆愛知県の中学校2年生 高橋 大志 さんからの解答。

このゲームでは、4の倍数が残るように取り続ければ勝てるので、4の倍数(例:20,32等)の数の碁石ではじめる場合には人間側を強制的 に先手にし、それ以外の場合では、コンピュータが碁石の残りの数が4の倍数になるように先に碁石をとります。

以上がコンピュータの作戦だと思います。


◆神奈川県 takizawa さんからの解答。

コンピューターは、必ず残りを4の倍数にする取りかたで戦っている。
残りを4の倍数にして取っていけば絶対負けない。
なぜなら最後に4残すということは、相手は何個取ろうが次にすべてを取れる。
4の倍数を残すのは、相手が何個取ろうが、残そうと思えば毎回残せる。
よって、どんな数字から始まろうが、4の倍数を残せば必ず勝てるのである。


◆千葉県の小学生 薦田 洵 さんからの解答。

コンピュータは、最初に4の倍数になるように取る。
最初の碁石の数が4の倍数のときは、こちらに先手をゆずる。
そして、こっちが1つ取ったらコンピュータは3つ、こっちが2つ取ったらコンピュータも2つ、こっちが 3つ取ったらコンピュータは1つ取るという作戦でやっているから、こっちは勝てない


◆神奈川県の小学生 SYUYA BUNDO からの解答。

最初の碁石の個数が4で割り切れないならコンピューターの先手。
最初の碁石の個数が4で割り切れるならコンピューターの後手。
コンピューターが先手の場合、コンピューターは碁石の個数を4で割った余りの数だけ碁石を取る。
その後、こちらが1個取ったら3個、2個取ったら2個、3個取ったら1個コンピューターは取る。
これでコンピューターは必ず勝ちます。

お友達とやってみようかな。


◆岩手県の中学校2年生 yoshi さんからの解答。

碁石を4の倍数にするとそれではあなたから...、それ以外の数だと最初にコンピュータが...となる。

4の倍数にすると、始めにコンピュータがいくつとっても4の倍数に調整され、 4のときにコンピュータがいくつとってもこちらでは0に出来、コンピュータが負ける。

それ以外の数だと、始めにこちらが4の倍数に調整でき、以下は4の倍数のときと同じことになるため、 それを防ぐためにはじめに言ったようになる。

P.S.
このゲームは色々なページに出てるので有名です。
それを見た人もたくさんいると思いますよ。
僕もその一人です。


◆神奈川県の小学生 fumi さんからの解答。

<コンピューターの作戦>

まず、最初の碁石の数が4の倍数だったら自分を先にさせる。
碁石の数が4の倍数じゃなかったら、4の倍数になるようにコンピューターがとる。

例 27個だったら3個とって24個にする
後は合計が4になるようにとって行けば、コンピューターが勝つ。
(自分が3個とったら1個、2個とったら2個、1個とったら3個とる)


◆宮崎県の中学校3年生 宇土 裕亮 さんからの解答。

1〜3個までしかとれないので、自分と相手のとった碁石の和を常に4にすることができる。

なので、碁石の数をxとすると 4n+m=xとなる。
最後の碁石をとればいいので、

m=0のとき、後攻で始める。
m=1のとき、先攻で始め、最初に1をとる。
m=2のとき、先攻で始め、最初に2をとる。
m=3のとき、先攻で始め、最初に3をとる。

あとは相手と自分のとった碁石の和を4にする。

感想・・・勝たせてくれないなんていやです


 『碁石取りゲーム』へ

 数学の部屋へもどる