Mastermind攻略範例三(提示可能有錯誤)

讀者在瀏覽本範例前請先瀏覽「Mastermind攻略範例一」
以便對破解Mastermind謎底的基本原理有一概括認識。

遊戲設定:No. of colours: 7; Start from: Trial 1; Length of code: 4; Hints contain error(s)?: May contain error(s); Order type: Fixed order; Colour repeated?: No repetition

謎底:0136


筆者破解Mastermind的原理就是作出假設和不斷因應提示修正假設。假如出謎者的提示有錯誤,我們便不可能 破解謎底,因為錯誤的提示與正確的謎底在邏輯上是互相矛盾的(除非我們的推理也有錯,在錯有錯著的情況下 「誤中」謎底)。但是由於在某種遊戲設定下,Mastermind的可能謎底數目是一個有限數,上述修正假設的過程 在進行到某一階段時,便會窮盡所有可能性而仍然未能找到謎底,這時我們便可斷定出謎者的提示有錯誤。現 在就讓我們看看以下範例。

開始時我們可任意輸入4個數字。假設我們輸入0123,並得提示3。在第一回合結束後我們得到以下的「推理追 蹤表」:

回合輸入提示在本回合用到的新數字假設猜對的數字
1012330123-

接著我們進入第二回合。我們首先回顧第一回合的猜謎結果,由於在第一回合猜對了3個數字,我們可以首先假 設該3個數字為012,此外我們需要另加一個新的數字4。輸入0124後,我們得提示為2。在第二回合結束後,我 們的「推理追蹤表」變成:

回合輸入提示在本回合用到的新數字假設猜對的數字
1012330123012
2012424-

接著我們進入第三回合。我們首先回顧第二回合的猜謎結果,由於在第二回合我們本來假設猜對了012,但所得 提示卻是2,這說明我們之前所作的假設有錯,所以我們必須返回去修改之前的假設。我們返回第一回合,把假 設修改為013,然後重新前進至第二回合。比較一下013與0124,我們可得出結論:假如謎底真的包含013,那麼 我們在第二回合應至少猜中2個數字,而第二回合的提示剛好是2,並不抵觸我們的假設。

由於我們現時假設猜對了013,我們需要另加一個新的數字5。輸入0135後,我們本應得到提示為3,但假設出謎 者給予我們的提示為2,即提示有錯誤。我們試看這樣推理下去會有甚麼結果。在 第三回合結束後,我們的「推理追蹤表」變成:

回合輸入提示在本回合用到的新數字假設猜對的數字
1012330123013
2012424-
3013525-

接著我們進入第四回合。我們首先回顧第三回合的猜謎結果,由於在第三回合我們本來假設猜對了013,但所得 提示卻是2,這說明我們之前所作的假設有錯,所以我們必須返回去修改之前的假設。我們返回第一回合,把假 設修改為023,然後重新前進至第二回合。比較一下023與0124,我們可得出結論:假如謎底真的包含023,那麼 我們在第二回合應至少猜中了2個數字,而第二回合的提示剛好是2,並不抵觸我們的假設。接著我們又繼續前 進至第三回合。比較一下023與0135,我們可以得出結論:假如謎底真的包含023,那麼我們在第三回合應至少 猜中2個數字,而第三回合的提示剛好是2,並不抵觸我們的假設。由於我們現時假設猜對了023,我們需要另加 一個新的數字6。輸入0236後,我們得到提示為3。在第四回合結束時,我們的「推理追蹤表」變成:

回合輸入提示在本回合用到的新數字假設猜對的數字
1012330123023
2012424-
3013525-
4023636-

接著我們進入第五回合。我們首先回顧第四回合的猜謎結果,由於在第四回合我們本來假設猜對了023,而所得 提示剛好是3,這時有兩個可能,要麼我們的假設正確,要麼我們的假設錯誤。如果我們的假設正確,那麼6不 在謎底內。可是這麼一來,我們便再沒有新數字可以填補餘下的位置了(本局遊戲設定的顏色數為7)。由此可見 我們的假設有錯,所以我們必須返回去第一回合,把假設修改成123。接下來請讀者自行證明我們的新假設123 並不抵觸第二和第三回合的猜謎結果。接著我們前進至第四回合。比較一下123與0236,我們可得出結論:假如 謎底真的包含123,那麼我們在第四回合應至少猜中2個數字,而第四回合的提示是3,較我們預期的多了一個猜 對的數字,這個數字必定是6。由於我們現時假設猜對了1236,剛好是4個數字,我們就輸入1236,結果得提示 為3。在第五回合結束時,我們的「推理追蹤表」變成:

回合輸入提示在本回合用到的新數字假設猜對的數字
1012330123123
2012424-
3013525-
40236366
512363--

接著我們進入第六回合。我們首先回顧第五回合的猜謎結果,由於在第五回合我們本來假設猜對了1236,但所 得提示卻是3,這說明我們的假設有錯,所以我們必須返回去修改之前的假設。先回到第四回合,由於在第四回 合我們已用了唯一一個可能猜對的數字(6),無可更改,所以我們只能返回到第一回合。可是我們在第一回合的 假設123已是最後一組可能猜對的數字,無可更改。至此我們已窮盡所有可能性而仍然未能找到謎底,這時我們 便可斷定出謎者的提示有錯誤(至於究竟存在多少錯誤以及這些錯誤究竟是在哪一步出現,單憑上述推理無法斷 定)。


連結至Mastermind Link Page