■数学基礎:あみだくじ

 前回の「コマネチ大学数学科69講」で「運命の赤い糸」が交差している状態は、「あみだくじ」と同じだと書いた。「コマネチ!」という、たけしの往年ギャグと「あみだ~くじ♪あみだ~くじ♪どれにしようか、あみだ~くじ♪」明石屋さんまの「あみだばばぁ」のキャラ(おれたちひょうきん族)。この出会いも運命の赤い糸なの?

問題:トランプのカードが、左からスペード、ハート、クラブ、ダイヤの順に並んでいる。これを逆順(ダイヤ、クラブ、ハート、スペードの順)に並ぶように「あみだくじ」を完成させよ。このとき、あみだくじの横棒は最低何本必要か?

遊び方】「あみだくじ」の縦棒の間をクリックすると、その位置に横棒が追加される。やり直すときは、縦棒の間以外をクリックする。

“■数学基礎:あみだくじ” の続きを読む

■数学基礎:板チョコ割りゲーム

これも、秋山仁センセの「高校講座 数学基礎」の「数理ゲーム必勝法」で紹介されていたゲームをそのままFlashで作ったもの。交互にチョコレートを縦横の溝に沿ってパキと折っていき、右下のホワイトチョコレートを相手に取らせたら勝ち。

遊び方:最初に先手、後手を選んだあとは、キーボードの方向キー(上下左右)でチョコレートの折る場所を決め、スペースキーを押して折る(※日本語入力をOFFにしておかないと反応しません;;)。

一度、遊んでみれば、必勝法はすぐわかるので、書くまでもないが、秋山仁センセの授業では、ゲームの最終的な形(茶と白の山がふたつの状態)から、遡って必勝法を見つける、逆思考法を説いていた。すると、先手の場合、相手がどのように取っても、自分は正方形になるように取っていけばいいんだな、ということがわかる。

「数学落ちこぼれ」のひきもり爺の時間の潰し方として、FlashのScriptを書き、試行錯誤を繰り返しながら、それがうまく動いたときは楽しいのだが、必勝法がわかっている数理ゲームをFlashで作ることに、はたして意味があるのかどうかは疑問が残る……。やりたいこと、学びたいことはたくさんある。「少年老い易く学なり難し」と言うが、酔っ払い爺には、さらに時間が足りない。覚えたこともすぐ忘れちゃうし><;

■数学基礎:フィボナッチ寿司

石取りゲーム(ニム)の第2弾「フィボナッチ寿司」。パーツは使いまわしだけれど、ルールが違うので必勝法も違うからね。Wikipediaの分類によると「二人零和有限確定完全情報ゲーム」ということになる。


ルール
1:最初の一手のみ、寿司は何個でも取れる(ただし、全部を取ることはできない)。
2:二手目からは、相手の取った寿司の数の2倍まで取ることができる。
3:交互に寿司を取り、最後に寿司を取ったほうが勝ち(パスはできない)。

前に「蓼食うバグも寿司好きゲーム」を作ったが、必勝法を発見するというより、先手なら、どんな手を打っても勝ててしまう(しかもバグあり)。数理ゲームにしても、もう少し楽しめるものを作りたいなぁ、というのが今度の「フィボナッチ寿司」なんだけど、必勝法をコンピュータに覚えさせるのに苦労するばかりで、完成しても自分では楽しめない;;

とりあえず、必勝法と解説は後日……^^;

2月17日追記:必勝法はこちら

“■数学基礎:フィボナッチ寿司” の続きを読む

■数学基礎:数理ゲーム必勝法

秋山仁センセのNHK高校講座「数学基礎:数理ゲーム必勝法」を参考にして、Flashのゲームを作成してみた。名づけて「蓼食うバグも寿司好きゲーム」イェーイ^^;

ルール
1:一度に取ることのできる寿司の数は最大3個まで。
2:直前に相手の取った寿司の数と同じ数の寿司は取れない。
3:先に寿司を全部取ったほうが勝ち(取る寿司がなくなったら、負け)。

問題:このゲームの必勝法を考えなさい。

遊び方
最初に「先手」「後手」ボタンを押して、ゲームをスタートする。食べたい寿司をクリックして、寿司を取り、画面右下の「赤いボタン」を押して、相手の番に渡す。もしも、「相手と同じ数の寿司は取れません!」と表示されたら、寿司を追加して取るか(ただし、3個まで)、手前の寿司(取った寿司)をクリックして寿司を戻し、「赤いボタン」をクリックする(※注意:このゲームの勝敗は、好きな寿司のネタをいくつ取るか、ではなく、寿司が取れなくなったら負けという点。誤解しないように^^;)

いわゆる「石取りゲーム」の変形なのだが、相手と同じ数の寿司を取ることができないというルールがミソだ。たとえば、最後に寿司が1個残ったとして、あなたの番のとき、この寿司を取れば勝ちだが、直前に相手の寿司を取った数が「1」のときは、その寿司を取ることができない。そのときは、「赤いボタン」でパスをしてほしい。

このゲームは、秋山仁センセの授業のとおり、数理ゲーム的には「先手、必勝」だ。ただし、「寿司食うバグ」を退治できたかどうか自信がない。数理ゲームの必勝法を考えるより、バグ取りに悩まされた。「けっこう毛だらけ、ネコ灰だらけ、私のプログラムはバグだらけ」というわけで、もしかしたら「後手」で勝つ方法があるかもしれない(><;

■ネプ理科:数当てゲーム

 関東ローカルかもしれないけれど、火曜深夜にTBS系列で「ネプ理科」という番組をやっている。先日は、このブログでもとりあげた「誕生日」問題をやっていた。スタジオ内にいるスタッフを含めた58人の中に誕生日が同じ人がいる確率は? というもの。めでたく実際に同じ誕生日のカップル(たまたま、男性と女性の組み合わせだった)が誕生した。人数が58人くらいになると、誕生日が一致する確率は、約99%になるんだよね。

 で、同じく「ネプ理科」でとりあげられていた「数当てゲーム」がある。深夜の番組らしく、女性に「過去に付き合った男性の数」を思い描いてもらい、数字が並んだ一覧表の中にその数が「ある」か「ない」かを答えていき、その数を当てるというもの。番組では、0~63の数でやっていたけれど、もう少し簡素にして0~15の数を当てるFlashゲームを作成してみた。

 番組では、その仕組みを詳しく解説していなかったが、これは、二進数を使い、位ごとにビットが立っている状態を調べるとすぐわかる(二進数は、0か1で表すので、1の場合、ビットが立つと言う)。上のFlashゲームでは、赤いランプを「1」、青いランプを「0」とすると、そのまま、二進数表記になっている。以下は、十進数と二進数の対応表。

20061202_01

 この4枚の数字が並んだカードを見せ、「ある」と答えたカードの最初の数を足した数が、思い描いた数になる。たとえば、2の位と8の位に「ある」と答えたなら、「2+8」で「10」ってわけ。思い描いた数が「15」の場合は、すべて「ある」と答えることになり、二進数で表すと「1111」になる。つまり、4ビットで表すことのできる最大の数だ。「ネプ理科」では、これを6ビット(6枚のカード)でやっていたのだが、「過去に付き合った異性の数」という設問だと、「15」では足りないと思ったのかな^^;

 ところで、この「数当てゲーム」は、以前、NHK教育の高校講座「数学基礎」という番組で、秋山仁センセが、その仕組みを解説していた。とゆーか、数の表し方「二進数」の勉強のために「数当てゲーム」を使って説明していたというほうが正しい。この番組では、さらに3枚のカードを加え(4枚+3枚)で、カードの中に選んだ数字が「ある」か「ない」かを答える際に、1回だけ嘘を言ってもよいというルールを追加している。嘘をついても数字が当てられるのは、パリティチェック(parity check)という手法で、嘘をついたカードを見つけ、正しい数に訂正できるからだ。こういった誤り検出訂正の符号理論は、CDやDVDなどは、もちろんのこと、ネットワークで情報を送受信するときなど、私たちがいつもお世話になっている技術の基礎となっている。

 番組を見逃した方や、もう一度、高校生と一緒に、秋山仁センセの授業を受けたい人は、インターネットで受講できるよん(「番組を見る」で動画再生)。
■NHK高校講座「数学基礎」数の表し方