甲:乙不知道這兩個數是什麼
丙:我知道這兩個數是什麼了

數字狼人殺

我在升高三暑假某次靈機一動,覺得可以把誰說謊誰誠實,跟我知道你不知道兩種邏輯題結合起來。於是我在數學培訓就開始想,回家後打開Excel去湊數字,搞了好幾天終於設計出了這個魔王題!但好像大家都懶得挑戰w

題目敘述

小明選取了兩個正整數x,yx,y,滿足1<x<y<101<x<y<10,他將x+yx+y告訴甲、xyxy告訴乙、xyx-y告訴丙。已知甲、乙、丙皆有可能說實話或謊話,但說實話者永遠說實話,說謊話者永遠說謊話,且在開始對話前,甲、乙、丙三人互相對彼此說實話或謊話的情形一無所知。假設甲、乙、丙都是絕頂聰明的,能運用所有現有知識做出盡可能多的推論,現在,他們開始以下對話:

甲:我不知道這兩個數是什麼,但我知道這兩個數中一定有奇數
乙:我不知道這兩個數是什麼
丙:我不知道這個數是什麼,不過甲在說謊
甲:乙不知道這兩個數是什麼
乙:的確,我不知道
丙:甲不知道這兩個數是多少,而且乙在說謊
甲:我不完全知道乙和丙是否說謊的全部實情
乙:我手上的數字(xyxy)是偶數
丙:我現在知道這兩個數是什麼

(註:三人都是在確認自己說的話一定是實話或謊話才會講,以避免說出不小心說出不符合自己人設的話;另外,要整句話皆為真才是實話)
請問:

(以下2~5題皆承接1.,即假設真正的(x,y)(x,y)即是使x+yx+y達最小的那組)

  1. (x,y)(x,y) 的所有可能為何?使得x+yx+y最小的那組(x,y)(x,y)為何?

  2. 丙說完他的第二句話後,據甲所知所有他認為有可能的(x,y)(x,y)所組成的最小集合為何?

  3. 甲、乙、丙三人知道(x,y)(x,y)確切值的順序為何?分別在何時就知道了?

  4. 原對話刪除其中kk句,且確保三人的邏輯嚴謹與合理,若欲使丙仍能判斷出(x,y)(x,y)的確切數值,試求出kk的最大值,以及具體刪除哪幾句?

為了以下論述方便,我們使用說話人-全部句數中第幾句對句子進行編號,譬如乙-5為「的確,我不知道」;另外,以T代表說實話者,F代表說謊者;再者,若論述提及「某人不知道」,未註明時均指他「不知道x,yx,y兩數的確切數值」。


簡答

點我展開
  1. 所有可能為(x,y)=(3,9)(5,9)(x,y)=(3,9)\vee(5,9),其中(x,y)=(3,9)(x,y)=(3,9)可使x+yx+y最小

  2. {(3,9),(4,8)}\{(3,9),(4,8)\}

  3. 如下表

    角色 何時知道
    對話開始之前
    甲-4
    乙-8
  4. kk的最大值為 88,只需保留甲-4即可

詳解

第1題

點我展開 先將所有可能情形列出
(x,y) 甲 (x+y) 乙 (xy) 丙 (x-y) xy唯一? x+y唯一? x-y唯一?
(2,3) 5 6 -1
(2,4) 6 8 -2
(2,5) 7 10 -3
(2,6) 8 12 -4
(2,7) 9 14 -5
(2,8) 10 16 -6
(2,9) 11 18 -7
(3,4) 7 12 -1
(3,5) 8 15 -2
(3,6) 9 18 -3
(3,7) 10 21 -4
(3,8) 11 24 -5
(3,9) 12 27 -6
(4,5) 9 20 -1
(4,6) 10 24 -2
(4,7) 11 28 -3
(4,8) 12 32 -4
(4,9) 13 36 -5
(5,6) 11 30 -1
(5,7) 12 35 -2
(5,8) 13 40 -3
(5,9) 14 45 -4
(6,7) 13 42 -1
(6,8) 14 48 -2
(6,9) 15 54 -3
(7,8) 15 56 -2
(7,9) 16 63 -1
(8,9) 17 72 -1

為了以下論述方便,我們使用說話人-全部句數中第幾句對句子進行編號,譬如乙-5為「的確,我不知道」;另外,以T代表說實話者,F代表說謊者;再者,若以下論述提及「某人不知道」,未註明時均指他「不知道x,yx,y兩數的確切數值」。以下開始進行推論:

  • 甲知道x+yx+y中必有奇數,若且惟若x+yx+y為奇數,因為此時x,yx,y必為一奇一偶,且若x+yx+y為偶數,甲將不能確定x,yx,y是兩奇或兩偶

  • x+yx+yxyx-y的奇偶性相同

  • 丙-3:「我不知道這個數是什麼,不過甲在說謊」

    • 若丙為T \Rightarrow 丙不知道(\Rightarrow xy7x-y\neq-7)且甲為F,而且丙知道甲為F。根據上表,我們知道丙除非是拿到7-7,否則不可能在一開始就能推論出甲知道與否,因此丙僅能對「x+yx+y必有奇數」做出否定 \Rightarrow x+yx+yxyx-y均為偶數

    • 若丙為F \Rightarrow 丙知道(\Rightarrow xy=7x-y=-7)或甲為T,不過若丙知道,則查表知甲確實不知道,且丙知道代表xy=7x-y=-7,進而x+yx+y為奇數,從而甲亦說實話。因此,無論如何甲為T。\Rightarrow x+y,xyx+y,x-y為奇數,且x+y{5,6,16,17}x+y\notin\{5,6,16,17\}

    • 由以上兩點,我們得知:甲為T \Leftrightarrow 丙為F \Leftrightarrow x,yx,y一奇一偶,且由於這些推理甲、丙都會做出,又他們知道自己是否說謊,因此他們互相知道對方是否說謊(在ROUND 1結束後)

  • 丙-6:「甲不知道這兩個數是多少,而且乙在說謊」

    • 若丙為T,則有

      1. 甲為F,且丙知道這件事

      2. 甲知道丙為T

      3. x+y,xyx+y,x-y為偶數

      4. 丙知道「甲不知道這兩個數是多少」

      5. 丙知道「乙在說謊(\Rightarrow 乙知道 \Rightarrow xy{12,18,24}xy\notin\{12,18,24\})」

      • 由1,甲-4為假,因而「乙知道這兩個數是多少」,從而乙亦為F,且甲知道這件事,因而甲由手上的x+yx+y可知xy{12,18,24}xy\notin\{12,18,24\}。我們將所有可能根據3進行篩選,滿足xy{12,18,24}xy\in\{12,18,24\}的組合只剩(x,y)=(2,6)(4,6)(x,y)=(2,6)\vee(4,6),由於要能由x+yx+y排除這種情形的可能性,從而x+y810x+y\neq8\vee10。查表可知(x,y){(2,4),(3,9),(4,8),(5,7),(5,9),(6,8),(7,9)}(x,y)\in\{(2,4),(3,9),(4,8),(5,7),(5,9),(6,8),(7,9)\}

      • 由4知xy2x-y\neq-2 (否則丙將無法確定甲是否不知道這兩數是多少),因此先排xy=2x-y=-2的所有情形,得到
        (x,y){(3,9),(4,8),(5,9)}(x,y)\in\{(3,9),(4,8),(5,9)\}

      • 此時有(甲,乙,丙)=(F,F,T)

    • 若丙為F,則由甲-4為真,乙-5亦為真,從而(甲,乙,丙)=(T,T,F)。且由於甲、乙、丙都能做出相應推理(他們擁有的資訊甚至還比我們多,我們在資訊受限時能做出的推理他們自然能做出),因此他們三人也都知道彼此的說謊或說實話情形。從而甲-7:「我不完全知道乙和丙是否說謊的全部實情」為謊話,但這與甲說實話矛盾,從而此情形不可能發生

    • 綜合以上分析,我們得出
      (甲,乙,丙)=(F,F,T),且(x,y){(3,9),(4,8),(5,9)}(x,y)\in\{(3,9),(4,8),(5,9)\},且可驗證此人設組合與甲-7並不矛盾

  • 乙-8

    • 由於乙為F,因而xyxy為奇數,從而(x,y)=(3,9)(5,9)(x,y)=(3,9)\vee(5,9),此即所有(x,y)(x,y)的可能,而使x+yx+y達最小的解為(3,9)(3,9)

我們可以經由(x,y)=(3,9)(x,y)=(3,9)輕易推論出「甲、乙、丙三人在ROUND 1結束後就都知道彼此的誠實與說謊情形了」。

第2題

點我展開

接著我們來解第2題,因為(x,y)=(3,9)(x,y)=(3,9),甲拿到x+y=12x+y=12、乙拿到xy=27xy=27、丙拿到xy=6x-y=-6。我們站在甲的角度進行推理:

  • x+y=12x+y=12,甲在一開始可知(x,y){(3,9),(4,8),(5,7)}(x,y)\in\{(3,9),(4,8),(5,7)\}

  • 查表可知乙-2、丙-3、乙-5所述都是甲已知的資訊,且他也知道丙在聽完他說的話之後便知道他在說謊,因此無從排除任何組合。

  • 至於丙-6,由於甲可以做出我們在求解第1題時做出的推理,進而得出(x,y){(3,9),(4,8),(5,9)}(x,y)\in\{(3,9),(4,8),(5,9)\},與上一題的答案取交集,甲據他所知所有他認為有可能的(x,y)(x,y)所組成的最小集合為{(3,9),(4,8)}\{(3,9),(4,8)\}

第3題

點我展開

接著是第3題,首先,乙在遊戲一開始便知道(x,y)(x,y)的確切數值。接著考慮甲,由第2題知至丙-6,他已將(x,y)(x,y)的可能性縮減到剩下兩種,而他在聽到乙-8時便知道xyxy為奇數,從而(x,y)=(3,9)(x,y)=(3,9)。至於丙,由於他拿到的數為6-6,在遊戲一開始他便認知(x,y){(2,8),(3,9)}(x,y)\in\{(2,8),(3,9)\},而丙對甲-4做出與我們在解第1題時相同的推理便能排除(2,8)(2,8)這組可能。

角色 何時知道 關鍵
對話開始之前 xy=27xy=27可唯一分解
甲-4後 甲知道乙知道,因而排除了(2,8)(2,8)的可能
乙-8後 乙-8的謊話使甲知道x,yx,y皆為奇數

第4題

點我展開

在來是第4題,由上我們可知只保留甲-1~甲-4,丙便能判斷出(x,y)(x,y)是什麼。我們來看各句話分別有什麼功能

甲:我不知道這兩個數是什麼,但我知道這兩個數中一定有奇數
乙:我不知道這兩個數是什麼
丙:我不知道這個數是什麼,不過甲在說謊
甲:乙不知道這兩個數是什麼

遊戲開始前:

甲知道(x,y){(3,9),(4,8),(5,7)}(x,y)\in\{(3,9),(4,8),(5,7)\}

乙知道(x,y)=(3,9)(x,y)=(3,9)

丙知道(x,y){(2,8),(3,9)}(x,y)\in\{(2,8),(3,9)\}

甲-1 乙-2 丙-3 甲-4
讓丙知道甲為F 未給甲、丙新資訊 未給甲新資訊 使丙排除(2,8)(2,8)

我們因而知道乙-2、丙-3也都可刪去。進一步我們還可以發現丙在一開始就知道乙知道了,因此憑甲-4就能知道甲為F,因此甲-1亦可刪去,因此kk的最大值為8,刪去後只保留甲-4。

我們示範一下丙如何藉此進行推理:

丙:「根據我手上的xy=6x-y=-6,我知道(x,y)=(2,8)(3,9)(x,y)=(2,8)\vee(3,9),經由查表我發現對這兩種情形,乙都在一開始就能知道(x,y)(x,y)是什麼了,但甲卻說『乙不知道』,因而甲一定在說謊。而既然甲會這麼說,代表他也知道『乙知道』,才能保證他說的是謊話,若(x,y)=(2,8)(x,y)=(2,8),那麼甲拿到的x+y=10x+y=10,但(x,y)=(4,6)(x,y)=(4,6)就是一組使x+y=10x+y=10但乙不知道的組合,也就是甲如果拿到x+y=10x+y=10,他將無法確定乙一定知道,從而必有(x,y)=(3,9)(x,y)=(3,9)

WTF

解完這題後,來看一題較簡單的題目(閹割自第四小題)

小明選取了兩個正整數x,yx,y,滿足1<x<y<101<x<y<10,他將x+yx+y告訴甲、xyxy告訴乙、xyx-y告訴丙。已知丙說實話,且在任一人開始說話前他不知道甲是否說實話。假設甲、乙、丙都是絕頂聰明的,能運用所有現有知識做出盡可能多的推論,現在,他們開始以下對話:

甲:乙不知道這兩個數是什麼
丙:我知道這兩個數是什麼了

請問,這兩數可能是什麼?

答案留作讀者練習~