作者hsuan0904 (GNS)
看板TurtleSoup
標題Re: [閒聊] 強盜問題
時間Sat Jul 14 06:58:01 2018
※ 引述《chdodo (嘟嘟嚕嘟嘟)》之銘言:
: 昨晚滑女版看到的問題,害我失眠QQ
: 題目是這樣的
: 有3個強盜攔住去路
: 一個只說真話,一個只說假話
: 另一個不確定他會說真話或是假話
: 你只能問他們一樣的問題,他們只會回答是或否
: 要問什麼問題才能區別出他們的身份呢?
: 我覺得可能要問造成無法回答的問題,製造出是和否以外的答案
: 例如:造成悖論的問題讓謊話那個無法回答
: 或是問其他兩個人不確定的那個會回答什麼
: 不知道答案感覺超痛苦的,有沒有人知道XDDD
: --
小弟獻醜來試著解答看看,如果回答有誤的話還請各位高人指點包含,
這題我覺得比較有趣的地方是
只能問他們一樣的問題
在回答問題先做一點定義:
真話強盜後面都稱為
T (True)
謊話強盜後面都稱為
F (False)
隨機強盜後面都稱為
R (Random)
回答有三種
y (yes)
n (no)
s (無法回答silent)
另外在還不知道他們的身分之前,我們先將他們稱為
A, B, C
另外做一個假設,三個強盜是圍成圈圈把你圍住的,
所以:
-
A的右邊是
B
-
B的右邊是
C
-
C的右邊是
A
我們準備要問他們的問題是,後面稱為Q:
你跟你右邊的人是否會對1+1=2這個問題回答同樣的答案
三人的排列組合有六種情況,後面稱為
表一:
FT =>
y : F 知道 T 會跟他回答不一樣,所以會說謊回答yes
FR =>
s : F 不知道 R 會不會跟他回答一樣,所以無法回答
TF =>
n : T 知道 F 會跟他回答不同,所以會回答no
TR =>
s : T 不知道 R 會不會跟他回答一樣,所以無法回答
RT =>
yns : R甚麼都可能回答
RF =>
yns : R甚麼都可能回答
三個強盜的排列有六種,分別是
TFR
TRF
FTR
FRT
RTF
RFT
接下來就是把所有情況討論出來,
我們先對 A問 Q,且回答是
y,
則根據表1,僅有以下狀況有可能發生:
- F
TR
- R
TF
- R
FT
注意上面我上色的地方,我們可以確定
B 絕對不是 R
我們再對 B問 Q,得到的回答會分別是:
- F
TR => s
- R
TF => n
- R
FT => y
可以發現三個回答都是不一樣的,因此可以推出三人的身分:
- A 回答 y, B 回答 s => FTR
- A 回答 y, B 回答 n => RTF
- A 回答 y, B 回答 y => RFT
這個情況下,只要兩個問題就可以確認出三個人的身分了,
處理完 A 回答 y 的情況,下一種情況為 A 回答 n,
同樣根據表1,可能的情況有三種:
- T
FR
- R
TF
- R
FT
注意上面我上色的地方,我們同樣可以確定
B 絕對不是 R
我們再對 B問 Q,得到的回答會分別是:
- T
FR => s
- R
TF => n
- R
FT => y
可以發現三個回答都是不一樣的,因此可以推出三人的身分:
- A 回答 n, B 回答 s => TFR
- A 回答 n, B 回答 n => RTF
- A 回答 n, B 回答 y => RFT
以上把兩個比較簡單的情況處理完了,但如果 A 的回答是 s,
則根據表1有四種情況:
- TR
F
- FR
T
- RT
F
- RF
T
這邊上色的變成 C ,我們可以確定
C 絕對不是 R
接下來我們對 C 問 Q:
- TR
F => y
- FR
T => n
- RT
F => s
- RF
T => s
前兩個情況的答案是不一樣的,所以可以確定
- A 回答 s, C 回答 y => TRF
- A 回答 s, C 回答 n => FRT
至於後面兩個情況,我們則需要對 B 問 Q:
- R
TF => n
- R
FT => y
所以可知:
- A 回答 s, C 回答 s, B 回答 n => RTF
- A 回答 s, C 回答 s, B 回答 y => RFT
綜合以上,以下就是所有狀況跟答案:
- A 回答 y, B 回答 s => FTR
- A 回答 y, B 回答 n => RTF
- A 回答 y, B 回答 y => RFT
- A 回答 n, B 回答 s => TFR
- A 回答 n, B 回答 n => RTF
- A 回答 n, B 回答 y => RFT
- A 回答 s, C 回答 y => TRF
- A 回答 s, C 回答 n => FRT
- A 回答 s, C 回答 s, B 回答 n => RTF
- A 回答 s, C 回答 s, B 回答 y => RFT
這題就被破解了,所以也不太算是一言兩語可以講完的。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 193.81.223.60
※ 文章網址: https://www.ptt.cc/bbs/TurtleSoup/M.1531522683.A.EC8.html
※ 編輯: hsuan0904 (193.81.223.60), 07/14/2018 06:59:08
推 MrSherlock: 推整理,但是無法回答的謊言就是無法回答? 07/14 10:47
推 MrSherlock: 另外s的設定比較常見是在回答問題先對身分擲骰 07/14 10:54
→ MrSherlock: 確認這個問題他以什麼身分(T/F)回答 07/14 10:55
→ MrSherlock: 所以會變成 RT => y;RF => F 07/14 10:56
→ MrSherlock: 哈哈哈XD 一直在賣弄設定,只是覺得邏輯問題出現 07/14 10:58
→ MrSherlock: 無法回答很奇怪 07/14 10:58
推 MrSherlock: 更正:第二句的s改成R XP 07/14 11:07
恩,我是假設隨機會隨機自己的身分,這樣比較難一點 (?
推 arthurduh1: R會回答三種有點怪, 如同小夏說的應該會在特定決策點 07/14 11:08
→ arthurduh1: 擲骰. 這其實是題目該告訴我們的, 但他沒說就將就一下 07/14 11:09
→ arthurduh1: 我想到的擲骰點只會有三種可能: R 會回答 T/F, 07/14 11:10
→ arthurduh1: R 會隨機回答 T/F, 以及 R 會回答 s 07/14 11:11
→ arthurduh1: *T/F 都改成 y/n 07/14 11:11
推 arthurduh1: 再者這個解會根據前面的回答改變策略. 也不是說這樣 07/14 11:15
→ arthurduh1: 的解不好, 但是你可以參考一下我在原文推的方法, 07/14 11:16
→ arthurduh1: 移到這個設定底下不管怎樣問兩個問題就結束了 07/14 11:17
→ arthurduh1: (在這設定底下至少要問兩個問題) 07/14 11:17
→ arthurduh1: 最後, 這個解還要額外假設這些人彼此知道誰是誰 07/14 11:18
→ arthurduh1: 不過他最後的方法是在 R 會真的隨機回答下的機率解 07/14 11:23
→ arthurduh1: 好像可以理解, 阿軒應該是把無法回答也視為正規答案 07/14 12:01
→ arthurduh1: 不過之前我們都是在不得已的情形下, 才會沉默 07/14 12:01
→ arthurduh1: 但是這樣的話, 說謊者也能把 "是" 說成 "沉默" 才對@@ 07/14 12:31
隨機的方法的真頗有趣 :)
※ 編輯: hsuan0904 (193.81.223.60), 07/14/2018 15:55:09