第7回:必勝法

 「たけしのコマネチ大学数学科」の第7回目。今回の問題は、ゲーム「三山くずし」の必勝法を考えなさいというもの。

 問題:「3個、5個、7個の石がある。交互に石を取っていき、最後の石を取ったほうが勝ち。石はいくつ取ってかまわないが、違う山(色)の石を同時に取ることはできない。このゲームの必勝法を考えなさい」

Ex_071_1  例によって「エクセル」で表を作ってみる。A列は「=DEC2BIN(C2)」として、C列に入力された石の数を参照して、二進数に変換している。B列の石の山は「=REPT("●",C2)」で、石の数ぶんの「●」を表示している。

 ここまで作成すると、やはり、対戦してみたくなる。しかし「エクセル」でインタラクティブなものを作ろうとすると、どうしても「VBA」を使わざるをえない。「VBA」とは「Visual Basic for Applications」の略で、マイクロソフトの「Office」製品で処理を自動実行させるためのプログラム言語だ。今回の問題は「VBA」の入門として、ちょうどいいかもしれない。

 さっそく「表示」メニューの「ツールバー」から「コントロールツールボックス」をクリックし、ボタンをひとつ作成。このボタンが押されたときの処理を「VBA」で記述する。第6回の二進数の説明のとき「エクセル」では、論理演算子はビット演算ができないと書いたが、「VBA」を使えば、話は別だ。「Xor」(排他的論理和)も使うことができる。

Ex_072  (※クリックで拡大)

 これで、石の数を減らし「決定」ボタンを押すと、「エクセル」の番になり、石を取る。何も考えていない「エクセル」に必勝法を教えるということは、同時に自分自身がこの問題の「必勝法」に対する理解を深め、より短い記述で整理することにつながる。その結果、先手必勝だが、途中で一度でもミスをすると負けてしまうことになる(^^;。必勝法は、番組を見た方なら、すでにご存知のはず。

“第7回:必勝法” への2件の返信

  1. また、お邪魔します。
    放映直後に、もうエクセルになっているので、毎度、驚きです。
    番組スタッフにも伝えておきましたが、やはり、驚いていました。
    こちらもネタ切れにならないよう、がんばりますので、今後ともよろしく!

  2. 竹内薫センセ、コメントありがとうございます。
    竹内薫センセのインタビュー記事を読みたいばかりに
    6月5日発売の「週刊現代」をコンビニで買いました。

コメントは受け付けていません。