R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

以前アップした問題の解答ですが

http://blogs.wankuma.com/rti/archive/2008/01/22/118565.aspx
以前アップした問題ですが

以前の解答がわかりにくいとか、ややこしいとか、そんな話もあったので自分なりに

解答

を書きなおしてみました。

解を得るために考えるべき事柄は以下の通りです。これらを順に解決することで解答が得られます。

  1. 有効な質問内容を作る
  2. 「わん」と「くま」から正しい回答を得る
  3. 3回の質問による特定方法の手順


1.有効な質問内容を作る

有効な質問を作るための方法は、次の通りです。

1-1.有効な回答者、無効な回答者を分類する
1-2.個人を特定する問題を検証する
1-3.正しい回答を得るための質問を考える

順に行きます。

-----------------
1-1.有効な答えをする人、そうでない人を分類

有効な質問内容は有効な回答者からしか得られないので、各回答者が有効か無効かを見極めます。

「ぽぴ王子」
常に正直に回答するため有効な回答者です。

「IIJIMASさん」
正しい時と、嘘をつく時があるため無効な回答者です。

「Rさん」
Rさんは常に嘘をつきますが、回答を逆転させれば常に正直な回答が得られます。
つまり、Rさんも有効な回答者です。

-----------------
1-2.個人を特定する問題を検証する

各人を特定するので「あなたは「ぽぴ王子」ですか?」のような質問になります。
この場合の有効な回答者の回答パターンを見てみます。

ぽぴ王子:常に「はい」と答える
Rさん:常に「はい」と答える

つまり、どちらも常に「はい」と答えることがわかります。しかし、この質問のままでは意味をなしません。
Rさんが「いいえ」と答える問題を考える必要があることがわかります。

-----------------
1-3.正しい回答を得るための質問を考える

ぽぴ王子は正直なので先ほどの質問に「はい」と答えます。
後は、Rさんが「いいえ」と回答する方法だけを考えれば良いのです。

Rさんは嘘つきですから、先の質問のように常に回答は「逆転」します。
同時に、更に「逆転」させれば常に正しい回答を返すことになります。

「あなたは「ぽぴ王子」ですか?」は、Rさんにとって常に「はい」と答える質問です。
この「必ず「はい」と答える」ことを利用して、上記の質問に対して「はいと答えますか?」を最初の質問に加えます。

- あなたは「ぽぴ王子」ですか?、と尋ねられたら「はい」と答えますか? -

ぽぴ王子は、もちろん「はい」と答えます。
Rさんは「ぽぴ王子」ではないので「いいえ」が正しい答えです。しかし嘘つきなので「はい」と答えます。
しかし、更に「はい」と答えますか?、と聞かれたら「はい」が正しい答えなので更に嘘をついて「いいえ」と答えます。

以上から、「- あなたは「ぽぴ王子」ですか?、と尋ねられたら「はい」と答えますか?」という質問に対して、ぽぴ王子は「はい」と答え、Rさんは「いいえ」と答える質問ができたことがわかります。


2.「わん」と「くま」から正しい回答を得る

上記で作成した質問ですが、回答は「わん」か「くま」で返され、どちらが「はい」か「いいえ」なのかは不明です。
この問題を解決するための方法は、次の通りです。

2-1.全質問と回答パターンを列挙してみる
2-2.全質問と回答パターンから規則性を探す
2-3.規則をまとめる

順に行きます。

-----------------
2-1.全質問と回答パターンを列挙してみる
「あなたはXXですか?、と聞かれたら「わん」と答えますか?」という質問に置き換えて全てのパターンを検証してみます。

「あなたは「ぽぴ王子」ですか?、と尋ねられたら「わん」と答えますか?」
 「わん」が「はい」の時  → ぽぴ王子=わん / Rさん:くま
 「わん」が「いいえ」の時 → ぽぴ王子:わん / Rさん:くま

「あなたは「Rさん」ですか?、と尋ねられたら「わん」と答えますか?」
 「わん」が「はい」の時  → ぽぴ王子:くま / Rさん:わん
 「わん」が「いいえ」の時 → ぽぴ王子:くま / Rさん:わん

「あなたは「IIJIMASさんですか?」ですか?、と尋ねられたら「わん」と答えますか?」
 「わん」が「はい」の時  → ぽぴ王子:くま / Rさん:くま
 「わん」が「いいえ」の時 → ぽぴ王子:くま / Rさん:くま

-----------------
2-2.全質問と回答パターンから規則性を探す

・「XXですか?」で「わん」と答えた人がXXになる。
・「わん」が「はい・いいえ」どちらの場合でも変わらない。
・XXがどちらでもなければ、二人とも「くま」と回答。

*あくまで有効な回答者である「ぽぴ王子・Rさん」のみの規則。

-----------------
2-3.規則をまとめる

・有効な回答者2人(ぽぴ王子・Rさん)はの回答は信頼できる回答である
・間違った回答をするのは無効な回答者である IIJIMAS さんしかいない
・「わんと答えますか?」と質問した場合「わん=はい」「くま=いいえ」である

後は、これを元に3人を特定すれば良いだけなので簡単です。


3.3回の質問による特定方法の手順

* 3 回のみの質問を無効な回答者である IIJIMAS さんに使わないため、早めに IIJIMAS さんを特定します。

1に質問です。3は「IIJIMASさん」かと聞かれたら「わん」と答えますか?
→「わん(はい)」
  2に質問です。3は「IIJIMASさん」かと聞かれたら「わん(はい)」と答えますか?
  →「わん(はい)」
    1・2共に「3が「IIJIMASさん」」と回答。
    1か2が「IIJIMASさん」なら1・2共に無効な回答になる。
    有効な回答者は2人で、無効な回答者は「IIJIMASさん」だけ。
    なので、3は「IIJIMASさん」と特定完了。
      1に質問です。2は「ぽぴ王子」かと聞かれたら「わん」と答えますか?
        3が「IIJIMASさん」なので1は有効な回答者。
        回答は有効なので1の回答から残りを特定。
  →「くま(いいえ)」
    1・2の回答が違うので、どちらかが無効な回答者、つまり「IIJIMASさん」。
    つまり、最初の質問で「3は「IIJIMASさん」だ」と回答した1は無効な回答。
    なので1は「IIJIMASさん」と特定完了。
      2に質問です。3は「ぽぴ王子」かと聞かれたら「わん」と答えますか?
        既に無効な回答者は特定済みなので、この回答から残りを特定。
→「くま(いいえ)」
  1が「IIJIMASさん」でないなら、1は有効な回答者なので3は「IIJIMASさん」では無い
  1が「IIJIMASさん」ならば、他の人は有効な回答者なので3は「IIJIMASさん」では無い
  上記どちらの可能性も、3は有効な回答者であることを意味するため3は「IIJIMASさん」では無い
  3に質問です。2は「IIJIMASさん」かと聞かれたら「わん」と答えますか?
  →「わん(はい)」
    3は有効な回答者なので2は「IIJIMASさん」と特定。
    残り一つの質問は上記と同様に行えば特定できるので省略。
  →「くま(いいえ)」
    3は有効な回答者なので2は「IIJIMASさん」ではない。
    更に3は既に有効な回答者であることがわかっているため残りの1が「IIJIMASさん」と特定
    残り一つの質問は上記と同様に行えば特定できるので省略。

投稿日時 : 2008年1月31日 13:22

Feedback

# The voice of raiinoa 2014/05/11 1:19 Connie

The voice of raiinoaltty! Good to hear from you.

# The voice of raiinoa 2014/05/11 1:21 Connie

The voice of raiinoaltty! Good to hear from you.

タイトル
名前
Url
コメント