ゲームの数学
S:ゲームってテレビゲームのことですか?
T:それもあるけど,トランプや将棋や碁もゲームだね。それにテニスやサッカーだってゲームだろう。ギャンブルだって一種のゲームだよ。そういうゲームを数学で考えてみたらどうなるかということですよ。
S:数学で考えると勝てるんですか?
T:原理がわかると勝てる!? これは「ゲームの理論」という数学の分野にもなっている。
S:ゲームにも数学があるの!
三減らしゲーム
-------------------------------------------------------------------
T:さて,これからやるのは最も簡単なゲーム。ルールは,
16から交互に数を消していく。消す数は3以内で,1つは必ず消す。そして相手に1を取らせた方が勝ち。
(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
-------------------------------------------------------------------
(パソコンと対戦したい人は、右の「3減らしゲーム」で行ってください。
先手で「あなた」に数字を入れると、パソコンが計算するので、次のセルに入力します。
以下同じように。好きな数を入力できます。)
≪ジオジェブラのアプレット≫
T:まず私とやってみよう。最初にやるよ。14まで3つ消す。
S:12まで2つ消す。
T:10まで2つ消す。
S:7まで3つ消すよ。
T:6を1つ消して。
S:5を1つ消す。
T:ここで3つ消すと・・。
S:負けた。どうすれば勝てるのかな?
T:ではそれぞれペアになってゲームをやってみよう。はやく法則を見つけた人が勝つ。
・・・
S:わかった!2を取れ(消せ)ば勝ちだ。
S:そんなのはわかっているよ。その2を取るにはどうしたらいいんだ?
S:その為には相手が3までしか消せないから6を取れ(消せ)ば良い。
T:どうして?
S:相手が1つ消しても残りは4だから3つ消せば2を取れるし,2つ消せば2つ消して2を取れる。3つ消しても3だから2は取れ(消せ)る。
T:なるほど。では6をとる(消す)ためには?
S:うーんと,10をとれば良いんだ。ということは次は14を取れば良い。
T:つまりどういう数を取ればいいの?
S:2,6,10,14,18・・・つまり2×奇数になる数だ。
T:これで必ず勝てる?
S:必ず勝つとは限らないよ。最初の数が2×奇数だったら必ず負けるよ。
T:勝つか負けるかは先手か後手か,または最初の数によって決まっているんだ。
二山くずしゲーム
-------------------------------------------------------------------
T:では,もう少しゲームを複雑にしてみよう。今度は数を二山にしてみよう。山にまたがって数を取ることはできないとする。3以内の数を減らしていくことは同じとする。どちらかの1を相手に取らせたほうが勝ち。
A(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
B(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
の二山としてしてみよう。
-------------------------------------------------------------------
S:今度はボクからやるよ。さっきの(2×奇数)を利用すれば良いんだ。Aを14まで3つ消す。
T:じゃぁ、Bを3つ消して14をとる。
S:Aで13を消す。
T:Bで13を消す。
S:Aで10まで消す。
T:Bで10まで消す。
S:Aを8まで消す。
T:Bを8まで。
S:Aを6まで。
T:Bを6まで。
S:Aを3まで。
T:Bを3まで。
S:Aで2を消す。
T:Bを2つ消して0。
S:負けた!ちゃんと2×奇数を取っていったのにどうして?
S:わかった。相手と同じ数を消していけば勝てる。
T:どうしてか説明してよ。
S:相手のまねをしていって,(2,2)になった時,相手が2を消せば2と1を消す。相手が2と1を消せば2を消すから勝ち。
三山くずしゲーム
-------------------------------------------------------------------
T:次は山を三つにしよう。ルールは同じとするよ。ただし、減らす数は3以内ではなく、1以上としよう。
A(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
B(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
C(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17)
の三山としてしてみよう。
-------------------------------------------------------------------
S:これはかなり難しそう。まずゲームをやってみようよ。
・・・
S:二山にして(m,m)にすれば必ず勝てる。
S:二山のゲームでやったもんね。えーと、3つの場合だと、(1,2,3)に持ちこめば必勝だ。
S:(1,1,1)でも勝ちじゃない?
S:(1,4,5)も勝てる。
S:(2,4,6)もいいね。
S:何か法則がありそう。
S:1+2=3だし、1+4=5だから、2つの数を足すと残りの1つが出るんじゃないかな?
S:(0,2,2)は必勝形だろ。(1,2,3)+(0,2,2)=(1,4,5)だから、必勝形どうしを足しても必勝形じゃないの。
T:これを表にしてみると良くわかるよ。二つの山の数から残りの一つの山の数を求めるように表にするんだ。
次の表の空いたところを埋めてみて。
・・・左の表の数を二進法で表すと、右の表になる。さて、何が見えてくるか。
@|0|1|2|3|4|5|6|7 @ |000|001|010|011|100|101|110
0|1|0|2|3|4|5|6| 000| | |010|011|100|101|110
1|0|1|3|2|5|4| | 001| | |011|010|101|100|111
2|2|3|0|1|6| | | 010|010|011|000|001|110|111|100
3|3|2|1|0| | | | 011|011|010|001|000|111|110|101
4|4|5|6| |0| | | 100|100|101|110|111|000|001|010
5|5|4| | | |0| | 101|101|100|111|110|001|000|011
6|6| | | | | |0| 110|110|111|100|101| | |000
7| | | | | | | |0 111|111|110|101|100| | |001
S:この表には何か法則がありそうだよ。 この変換ソフトで計算してみてください。 参考文献 「石とりゲームの数理」一松信著/森北出版 三人ゲーム 三人でやってみよう! S:このまま3とればあいつが負けるから1つにして,次のやつを負かせよう。 S:えーと,2人を相手にするのだから最低2から6までの数を減らされると考えると,・・・。 T:どうだい。2人ゲームを3人にすると,とたんにゲームが難しくなることがわかったかい。昔から三角関係は難しいと言われていているんだ。とりあえず,いろいろやってみよう。何か法則が見つかるかもしれない。 S:わかった。一人で勝とうと思っても二人相手には負けるんだから,誰かと組めば必ず一人を負かすことができる。 S:つまり,三人の場合は一人だけで勝つことはできないけど,二人で協力すれば一人を必ず負かすことはできるということだ。 S:じゃ四人になるとどうなるのかな。 T:数学は現象の「法則を見つける」学問なんだ。今までやったように,法則を見つければ勝負に有利になるね。 経済や政治などを一種のゲームとしてとらえ,それを簡単なモデルにしてプレーヤーがどう行動したら最も良いのかを考える理論は,「ゲームの理論」
Game Theoryとして発展しています。(意思決定の数学として生活上でもいろいろ使えます。勉強してみて下さい。) S:今までのゲームで考えてきたことも数学なの? S:ゲームの理論では戦争もゲームととらえるんでしょう。 T:「三山くずし」の時には、法則というよりもこの表の中に何か構造が隠されていることに気がつくね。この表の演算を‘@’という計算だと考えると、その演算がどういう構造(しくみ)になっているのかという問題になってくる。このように数学には「現象の構造をつかむ」という面もあります。構造がわかるとゲームでは有利になるでしょう。 T:こんどは法則よりも構造が問題になるゲームをやってみよう。 彼女を追いかけろ さあ,やってみようか。君の方から追いかけてみて。何かを置いてやってみると分かりやすいよ。 S:こんなの絶対追いつくことができないよ。 S:あれ?つかまっちゃった。どうして? T:ちゃんとつかまるでしょう。 (内緒!(7)(8)を通れば必ず捕まえられる。) T:これはこの図の構造に秘密があるんですよ。それを解くためには,次のグラフを使って図を簡単にするのです。やってみましょう。これは横浜国大の根上さんの「グラフ理論」のページです。 gm learning のページへリンク。クリックしてページを開いてみてください。 (1) 開始ボタンを押すとgm applet が開きます。 やってみましょう。
【ジオジェブラによる「彼女を追いかけろ」の並べ直し】
でたらめに点を動かしたってだめですよ。ちゃんと整理しなくては。 どうですか。グラフの点を動かしているうちにこのグラフの構造がわかり,したがってなぜ追いつくのかもわかってしまいましたね。 S:なんだ、このグラフは格子になるのか。そして、(7)と(8)の所がつながっている。つまり、ひとつ跳んで進んでいるわけだ。ひとつ進めば必ず追いつくよ。 T:どうやらこの図の構造がつかめたようですね。この上の図は,伸ばしたり縮めたりしてわからなくさせているだけなんですね。この様に図(グラフ)のつながりを探っていくという数学もあるんですよ。 さらに興味のある人は簡単な「グラフ理論」を学んでみましょう。さっきの根上さんのホームページです。数式や計算はでてきません。マウスを動かしながら「グラフ理論」が学べます。
S:足し算みたいだけれどちょっと違う。
T:0,1,2,3の4つの数はそれだけで‘@’について世界を作っているよ。2@3=5じゃなくて1だもんね。
S:この表さえ使えば勝てるけど,計算で出すにはどうしたらいいの?
T:右の表を見て、何か気がつきませんか。
S:右の表は繰り上がりのない足し算だ!
S:わかった。二進数にするとわかる。これで、必ず勝てるぞ。
S:でもなぜ二進法の計算なんだろう?
S:この表を8まで作ってみると、{0,1,…2n−1}は群になっているよ。
S:つまり、p<8なら、p@8=p+8ということだ。ということは、pを2の累乗の和で表すと、普通の加法の組み合わせで計算できるということか。
石とりゲーム(三山くずし)・・・いくつにすれば良いか計算
このソフトは10進数は5桁まで、2進数は16桁まで求めることができます。
数字を入れてから変換ボタンを押してください。
-------------------------------------------------------------------
T:今までは山を増やしていったけれど,今度はゲームをする人数を増やしてみよう。最初の一山の場合の「16減らし」を3人でやるとどうなるか?
(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16)
-------------------------------------------------------------------
エッ!みんなが一ずつ取ったら俺の負けじゃないか。
S:2を取るためには2人が9で終わらなくてはならない。でも,自分は三個しか取れない。
S:次の人がいくつ取ってもその次の人が1を残せるから必ず負けるな。
S:2人を相手にするから難しくなるんだ。みんな別々と考えると・・・
S:さっきの「2×奇数の法則」を使っても,三人だと順番が変わるから必ず勝てるとは限らない。それに,相手はこの法則を相手に使わせる様にするかもしれない。
S:本当に負かせるの?説明してみて。
S:負かしたい人が2と3を取ると,味方のどちらかが負ける。この二つを取らせないようにすることは,二人で協力すれば必ずできる。2と3さえとらせなければ負かすことができる。
S:三人でゲームをする場合は,誰か一人と組んで,そのあとその一人をやっつければ良いわけか。何だか三人でやる喧嘩にも当てはまりそう。
S:敵の敵は味方というわけか。でも誰と組むか問題になるな。お互いにそう考えたらどうなるんだろう。
T:そうなると人間関係の問題だね。
T:もちろん。時々なぜかと聞いたのは証明ですよ。
S:ボクはいつもプレイステーションをやっているから数学をやっているといっても良いんだね。
T:ン?
T:平和を追求するためには、戦争を知らなきゃいけない。どうして戦争が起きたのか、その戦争の結果はどうなったのか、というようなことを研究することは大事だよね。でも、それを何のために研究するのかということは忘れてはならないよ。数学はいつも戦争で使われてきた歴史がある。
S:コンピュータは戦争で使うために生まれたんでしょう。
T:ところで、戦略の中にモノマネ戦略というのがある。それは、最初は友好的な手をうち、次は相手と同じ手をうつというもの。相手が裏切ったら裏切り、協力しようとしたら協力するという戦略なのだ。コンピュータのシュミレーションでは、今のところこの単純な戦略が一番成績が良いらしい。生き物の進化の戦略も、案外こういった単純なモノかもしれないよ。
S:構造も法則じゃないの?
T:少し違うんだな。
-------------------------------------------------------------------
T:次の図を見てください。「彼女を追いかけろ」というゲームです。これは2人でやるゲームで,最初はAとBにいてAから追いかけます。Bは逃げますが,1つしか進むことができません。追いつけば勝ちです。
-------------------------------------------------
(3)の上が消えていますが,これは(4)です。「pdf 拡大画像」
((1)に行くと(12)に逃げる。(11)に行くとAに逃げる。(12)に行くと(1)に逃げる。)
T:じゃ,今度は私が追いかけてみようか。
S:今度は私が追いかけてみる。あれ,つかまらない。どうして?もう一度やってみて。
S:またつかまっちゃった。この数字の順番に追いかければつかまえれるのかな。
T:こんどは先に逃げてごらん。必ずつかまるよ。
S:本当だ。逃げるとつかまり,追えばつかまらない。どうして?
(2) 右クリックすると点が描けます。
(3) 次は線を結びます。それは点を右クリックして結びたい次の点の位置にカーソルを持っていって右クリックすると線が引けます。
(4) 上の図を見て,点を15個とり,線を結んでみてください。
(5) 位置関係を間違えないように図を作ってください。
(6) できたら,この図(グラフ)の点を動かします。
(7) どう動かすかが問題ですが,動かしているとこの図(グラフ)の構造が見えてくるのです。
次の項目をクリックしてみて下さい。