« 六芒星のパズル | トップページ | 「数学」の落ちこぼれ »

2006年6月 3日 (土)

第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  (※クリックで拡大)

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

|

« 六芒星のパズル | トップページ | 「数学」の落ちこぼれ »

コメント

また、お邪魔します。

放映直後に、もうエクセルになっているので、毎度、驚きです。
番組スタッフにも伝えておきましたが、やはり、驚いていました。

こちらもネタ切れにならないよう、がんばりますので、今後ともよろしく!

投稿: 竹内薫 | 2006年6月 6日 (火) 03時32分

竹内薫センセ、コメントありがとうございます。

竹内薫センセのインタビュー記事を読みたいばかりに
6月5日発売の「週刊現代」をコンビニで買いました。

投稿: ガスコン | 2006年6月 6日 (火) 13時32分

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/99648/2056498

この記事へのトラックバック一覧です: 第7回:必勝法:

« 六芒星のパズル | トップページ | 「数学」の落ちこぼれ »