平々毎々(アーカイブ)

はてなダイアリーのアーカイブです。

小人のパズル

ネタバレ注意。数学パズルを楽しみたい人は先に問題を読み、悩むこと。

おれも解けなかったので後出しじゃんけんだが。

なお、そのままズバリの回答は書いてませんが、ある種の人々にとってはかなりのヒントになってると思われます。


改行


改行


改行


改行


改行


改行


改行


改行

この問題、コメント欄の「99人助かっちゃうんですねこれが…」というのが実は大きなヒントになっている。列の最後尾から順番に自分の色を答えていくことにすれば、列のどの位置にいても自分の番が回ってきたときには(自分および最初の尊い犠牲者を除いた)他の98人の色を知っていることになる。その上で、最初の尊い犠牲者が何色を選んだのか?だけが重要になる。

このことに気づくと、この問題を変換することができる。

「広場に99人の小人がいて、すべての小人が赤・青・黄のうちどれか一色の帽子をかぶっている。他人の帽子の色はすべて見えているが、自分の帽子の色だけは分からない。この様子を塔の上から眺めているニンゲンがいる。ニンゲンはすべての小人の帽子の色を見ることができる。ニンゲンは赤・青・黄の3種類の旗を持っている。ここでニンゲンは一つの旗を選び、塔の上で振った。その様子を見ていた小人たちは、ニンゲンがどのようにして旗の色を選んだかを知っていたので、全員が自分の帽子の色を知ることができた。さて、ニンゲンが旗の色を選んだときのロジックは?」

さらに記号的に変換する。なお、3進数の1つの桁をTrと表記している。

「99Trの情報を送信する。Tr列の先頭にエラー訂正Trを追加し、全体で100Trにする。伝送路でノイズが乗り、エラー訂正Tr以外のどこかのTrが欠落する。ただし、どのTrが欠落したのかは分かる。このとき、受信側で欠落したTrを復元するには、エラー訂正Trはどのように生成すべきか。」

こんな問題だったら正解に気づいたかもしれない。おれは頭が固いなあ。

慶応SFC「情報リテラシー」の第1回課題も面白い!