- ベストアンサー
1000本のワインの中の毒ワインを判別する方法
- 1000本のワインの中に毒入りされた1本のワインを正確に判別する方法を解説します。
- 回答によると、この問題は2進法を使って解くことができます。
- 最低でも10人のドレイが必要です。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
こんばんわ。 こういうときは、少ない数を例として考えてみるとポイントが見えてきます。 いま、8本のワインのうち 1本だけが毒入りであるとします。 このときは、3人だけで毒入りを見分けることができます。 その手順は次のようになります。 (1) 8本のワインに 0~ 7まで番号をつけておきます。 また、番号を 2進法にしておきます。 No.0 = 000 No.1 = 001 No.2 = 010 No.3 = 011 No.4 = 100 No.5 = 101 No.6 = 110 No.7 = 111 --------------- CBA (2) グラスを 3個用意します。 それぞれのグラスを A、B、Cとします。 (3) (1)の 2進法の表を見ながら、 Aのグラスには、No.1+ No.3+ No.5+ No.7 Bのグラスには、No.2+ No.3+ No.6+ No.7 Cのグラスには、No.4+ No.5+ No.6+ No.7 をそれぞれ混ぜ合わせます。((1)の表の一番下段に書かれている文字に対応させる) あとは、3つのグラスに入ったワインを飲ませて様子をみます。 もし、 ・Aだけが亡くなったのであれば、毒入りは No.1 ・AとCが亡くなったのであれば、毒入りは No.5 ・誰も亡くならなければ、毒入りは No.0 というようになります。 人数を増やしていくと、勘定できるワインの本数が倍々になっていきます。
その他の回答 (8)
- cznut9
- ベストアンサー率17% (29/169)
どうもまちがったことを書いてすみませんでした。 全部自力で解くのをあきらめて他の方の回答を見ると 発想がわかりました。少ない回数でたくさんの情報を知るためには 同時にたくさん行えばよいというのはわかってたんですが 具体的に何をたくさんにするかを取り違えてました。 「電気の中継コードがたくさんの種類ありそれぞれたくさんあり、 一種だけすべて断線しており分岐ソケットが好きなだけ 使えて電気を流してみる回数が限られている」 と考えればよかったんですね。
お礼
ご回答ありがとうございます! 眠い中で時間を割いてまでありがとうございます! 思考として「同時にたくさん」というのは さんこうになりました ありがとうございます
- cznut9
- ベストアンサー率17% (29/169)
すみません! 私の方法では一人が数多く飲んでいるのでだめですね。 しかし、正しい考えの一部分を成している可能性はあります。 今思いついたのですが、 一人が飲めるのは二回きりではなく、たとえば一時間にひとつずつ記録しながら 飲めば、20時間目で死んだなら最初から10種は毒ではなく残りの10種が毒候補と なります。これをうまく組むと解けるかもしれません。 つまり飲むチームのメンバーをずらして組み合わせを増やすように 飲む時間をずらして二次元を三次元にする的な。 とりあえずおやすみなさい。
- cznut9
- ベストアンサー率17% (29/169)
まず、ひとつめの私の回答の 「最初に10人で100ずつ飲んで候補を 100にして二回目百人で飲む。これなら101人」 は間違いで、二回目飲むのは99人なので合わせて100人でした。 誰も死ななかったら飲まれていない酒が毒だから。 では正解の説明。 とりあえず10人で試します。 まず、花びら9枚の花を描きます。 各はなびらに10と書き、中心の丸に2と書き、花の外に8 と書きます。中心の2は9人が同じ酒を飲むという意味です。 もし酒が1000ではなく100なら、これで解決します。 毒を含むグループの内容はどれも10以下なのだから生き残りが9人 いればよく、中央2に毒があり一回目みんな死んだらあとひとりいればよい。 これは実感的な数量のあつかいでだいたいつかんで 調整するという手順です。 この発想で、実際の出題は酒1000本なので極力花を大きくするために 花の外はなしにします。 この問題は、正解の数値がむやみに大きくはない整数なので 愚直に試してゆく方法も有効と思われます。 二人が死んで二回目8人で足りる酒の種類は9です。 ~途中飛ばして~ 四人組が7種ずつ飲むとして、 四人組の組み合わせは 10×9×8×7を4×3×2で割るから 210であり×7=1470 1000を越えました。 9人で試すと足りないことがわかります。
- cznut9
- ベストアンサー率17% (29/169)
解けました! 今説明文を書いてもういちど回答しますので スレッドを閉じないでください。
- cznut9
- ベストアンサー率17% (29/169)
本来の出題は「最少人数を示せ。 すなわちそれより減らせないことを示せ。」 というものです。 したがって、10人が正解という前提でなぜなのか知りたいと 考えても思考経路がありません。 愚直に考えてゆくと、 一人二回飲めるので、安直に考えれば500人です。 しかしこれが正解のわけがない。 段階的に毒候補を減らすなら最初に10人で100ずつ飲んで候補を 100にして二回目百人で飲む。これなら101人です。 最初20人なら51人。 最初30人なら35人。 最初40人なら40人です。お、変化あり。 この方法での最少人数は詰めていけばわかります。 この低いレベルの方法は高いレベルの方法の一要素と期待できそうです。 これより減らすには、一回の試飲での情報量を増やすアイデアがいります。 それは試飲酒を別人に重複させることです。 たとえば三つの円を一部重ねた図を描くと、 重なっていない領域と二重領域と三重領域があります。 これだと7種の情報を得られます。 重なっていなければ3種しかありません。 重ね方と情報の使い方とを試していけば法則がわかって 最少人数を知ることができそうです。 もちろん明解な方程式があるのでしょうが、 それを教わっても面白みがありません。 頭の体操なんだから、たとえ解けなくても、途中まででも自力で考えるから楽しいのです。 単に当たった外れたという状態に陥ると意味がありません。プレイなんだから。
お礼
ご回答ありがとうございます! ごもっともですねw 頭の体操でかたっくるしかったら意味ないですねw 自力で考えても 「「6人で100個までしぼる」 しかできませんでしたがw ありがとうございました!
- banakona
- ベストアンサー率45% (222/489)
ORUKA1951さんの2番目の答えが分かりやすいと思う。 1000本では大変なので7本に減らす。この場合は10人じゃなくて3人で済む。 1本目のワイン 0 0 1 2本目のワイン 0 1 0 3本目のワイン 0 1 1 4本目のワイン 1 0 0 5本目のワイン 1 0 1 6本目のワイン 1 1 0 7本目のワイン 1 1 1 1人目の奴隷Aは、一番左が1になっているワインを混ぜて飲む。つまり4~7本目のワインを混ぜて飲む。 2人目の奴隷Bは、真ん中が1になっているワインを混ぜて飲む。 3人目の奴隷Cは 一番右が1になっているワインを混ぜて飲む。 もし、Aだけが死んだら、1 0 0となっている4本目のワインに毒が入っている。 もし、AとCが死んだら 1 0 1となっている5本目のワインに毒が入っている。 もし、ABC全員が死んだら 1 1 1となっている7本目のワインに毒が入っている。 ということ。1000本の場合も同様にすればいい。 何人の奴隷がいるかは、[log2(ワインの本数)]+1で求まる。([ ]はガウス記号:それを超えない最大の整数) 1000本ならlog2(1000)=9.96・・なのでこれを超えない最大の整数9に1を足した10(人)が答え。ワインが7本なら log2(7)=2.80・・・なので2+1=3が答え。 しかしヒドい話だな。
お礼
ご回答ありがとうございます! かなり数学的な解き方ですね [log2(ワインの本数)]+1 が、よくわからなかったのですが 高校生レベルでもわかりますかね? ひとまず ありがとうございました! 話ですが・・・まぁ、紙面上ということでw
補足
ほそくでは無いのですがlogが分かったのでご報告です。
- kimkim0540
- ベストアンサー率21% (131/600)
追記結局のところ私にもなかなかわかりませんがw 1~1000のワインを10人で振り分けて試飲することで 後で死んだ奴隷から逆算すると1本の毒入りが判明するそうです。 実は1,023本までは10人でできますが、1,024本から2,047本だと死刑囚がもう一人必要となります。 と記載されているのでちゃんとした方程式があるのでは?
- kimkim0540
- ベストアンサー率21% (131/600)
お礼
ご回答ありがとうございます! ページを見させていただきました。 やっぱり難しいですね(低脳でごめんなさい。。。) ただ、面白い問題が多くてたのしかったです ありがとうございました!
お礼
ご回答ありがとうございます! なるほど、わかりやすい数からやればいいんですね さらに二進法の当てはめ方もわかりました ありがとうございました!