Standing on the Shoulder of Linus

Home / 2009 / 2月 / 08 / 紅白帽 コマ大数学科

紅白帽 コマ大数学科

サンテレビで2月6日放送のコマ大数学科のお題が「紅白帽」でした。フジテレビでの放送から約一ヶ月遅れての放送になりますね。

6人一組が縦一列に並び、各々は赤帽または白帽のどちらかを確率1/2で被る。自分の帽子の色、後ろの人の帽子の色は見えない(例えば先頭の人は誰の帽子の色も分からない)。列の後ろの人から順に自分の帽子の色を「赤」または「白」と言っていき、正答数を多くしたい。

元の出題(テレビ放送での問題)は、2通りの戦略の優劣を考えるものでしたが、ここでは、一番後ろの人以外は必ず正解する方法を考察します。

一番後ろの人は、前の5人の帽子の色を見て、赤が奇数であれば「赤」、赤が偶数であれば「白」と言います。こうすると、6つの帽子(前5人は実際の帽子の色、最後尾の人は発言した色)に赤帽が必ず偶数になります。

後ろから二番目の人は、前の4人の帽子が見えます。最後尾の人の発言も分かります。よって5つの帽子が分かります。5つのうち赤が奇数なら、赤が偶数となるように「赤」と言えば良いのです。(5つのうち赤が偶数なら、赤が偶数なので「白」と言えば良いのです。)

以後も同様です。自分より前の人の帽子と、後ろの人の発言5つのうち、赤が奇数なら「赤」、赤が偶数なら「白」となります。

例えば、赤白赤赤白白の場合。最後尾の人は赤と答えます。外れですが、もともと最後尾は当てる手段は無いので仕方がありません。後ろから二番目の人は、前に赤白赤赤が見え、後ろの人が「赤」なので、赤は4つあります。したがって自分は「白」となります。後ろから三番目の人は、前に赤白赤が見え、後ろは「赤」「白」で赤3つなので、自分は「赤」となります。このようにしていけば、最後尾以外の人は必ず正答になります。

これは、情報科学のチェックディジットの考え方に応用されています。情報にルールを追加することで、入力ミス等の誤りを検出することができます。上の例は、赤を1、白を0とすれば、「1の数が偶数」という条件を付けることに相当します。

もちろん、「1の数が偶数」というルールは単純過ぎるので、1が2つ増えた場合や、0⇒1と1⇒0 が起きた場合の誤り検出はできないですね。クレジットカード番号のように重要な情報ならもっと複雑なルールが規定されているはずです。この辺は情報量とチェック用冗長データの比率の兼ね合いですね。

関連

← Atahualpa日本語化 QRコード仕様 →

アーカイブ

人気の投稿とページ

  • キンドル本を印刷する(PDFに変換する)方法
  • 名古屋駅から国際センターまでの道のり(徒歩)
  • AGPL ライセンス(GPLとは似ているが違いもある)
  • 6年使ったイーモバイル(Y!mobile)を解約手続。店頭でSIM返却
  • JP-Secure SiteGuard WP Pluginは不正ログイン防止に役立つか

プロフィール

水野史土:月70万PVホームページ制作会社のレスキューワーク株式会社で、PHPソフトウェアのサポートを行っている。concrete5コミュニティリーダー、Novius OSコアコード貢献者でもある。 詳しくは管理者詳細参照。
大好評WordPress書籍「WordPressユーザーのためのPHP入門 はじめから、ていねいに。」サポートページ

Copyright © 2015 Standing on the Shoulder of Linus.