當你玩從 000 到 999 完整三位數空間搜尋的數字推理遊戲時,允許使用前導零,包括 Crack the Code 中的原始三位數密碼。三位數密碼中的每個位置都是獨立的數字位置,因此像 075 這樣的密碼與 750 或 507 一樣有效。解題器將每個位置獨立處理,而不是將密碼視為一個數字,所以百位數位置上的 0 也是一個正常的候選答案。Crack the Code 內建的窮舉驗證會列舉從 000 到 999 的所有 1,000 個補零候選答案,並透過兩條線索進行篩選,最終只會留下唯一一個有效密碼。這意味著任何同時滿足兩條線索的前導零候選答案都會自動成為公平答案。本文將說明搜尋空間如何包含前導零、重複安全評分如何防止錯誤位置計數膨脹、僅憑兩條線索如何推導出唯一答案,以及遊玩時適用哪些輸入、評分與重置規則。

are leading zeroes allowed when i play digit deduction game
are leading zeroes allowed when i play digit deduction game

000 到 999 搜尋空間中前導零的運作方式

尊重前導零的三位數密碼遊戲將每個密碼視為三個獨立的數字位置,而不是一個十進位整數。因此,Crack the Code 的完整搜尋空間是 000、001、002,依此類推到 999,總共恰好 1,000 個候選答案。謎題卡上顯示的兩條線索是:527 有兩個完全正確且零個錯誤位置,以及 750 有零個完全正確且三個錯誤位置。兩條線索都會在完整的補零範圍內進行評估,因此百位數字為 0 的候選答案與百位數字為 7 的候選答案會以完全相同的方式進行檢查。

遊戲隨附的獨立驗證會將從 0 到 999 的每個整數補上前導零,對每個數字執行評分器,然後僅保留同時滿足兩條線索的候選答案。該遍歷過程會恰好返回一個密碼:507。由於驗證列舉的是 000 到 999 而非 100 到 999,因此像 075 或 050 這類密碼只要符合線索就是真正的候選答案。沒有任何隱藏規則會排除任何前導零組合,頁面 FAQ 也直接說明了這一點:前導零就是一個正常的數字位置。

解讀線索:完全正確與錯誤位置

每條線索都是兩個獨立的計數。完全正確計數統計的是在相同位置上與解答數字相符的數字。錯誤位置計數統計的是存在於解答中但位於其他位置的數字。單一解答位置只能貢獻於其中一項計數,因此在位置一中完全正確的數字,不能同時被計入位置一的錯誤位置。

評分器分兩個步驟強制執行此規則。首先,它會從解答與猜測中移除所有完全正確的配對。接著,它會比較剩餘未配對數字的頻率計數。一個在猜測中出現兩次但僅在剩餘解答中出現一次的數字,最多只能貢獻一次錯誤位置,即使猜測中包含兩個該數字。這避免了經典的膨脹錯誤——例如對解答 507 猜測 500 時,錯誤地讀為 3 個錯誤位置,而非正確的 2 個完全正確和 0 個錯誤位置。

猜測對照解答 507完全正確錯誤位置原因
5275, 2, 7205 與 7 完全正確;2 不存在於解答中。
7507, 5, 003三個數字皆存在,但每個都位於不同的位置。
0570, 5, 7127 在最後一個位置完全正確;0 與 5 存在但位置交換。
5005, 0, 0205 與第一個 0 完全正確;額外的 0 沒有第二個 0 可配對。
1231, 2, 300這些數字都未出現在 507 中。

500 那一列最能清楚展示多重集計算的重要性。天真的評分器會為重複的 0 多計一次錯誤位置。實際的評分器只看到一個未配對的解答位置,因此第二個 0 沒有可附著的對象,貢獻為零。

如何從兩條線索解出三位數密碼

  1. 從僅位置錯亂的線索開始。顯示 0 個完全正確和 3 個錯誤位置的線索告訴你,它的三個數字(7、5 和 0)全部存在於解答中,只是不在你所猜測的位置上。
  2. 利用第二條線索來確定順序。顯示 2 個完全正確和 0 個錯誤位置的線索,會將其中兩個數字放在其完全正確的位置上。辨識出 527 中哪兩個數字是完全正確,並將它們放在第一和第三個位置。
  3. 將第三個數字放入剩餘位置。第二條線索中缺席的數字(此例為 2)根本不可能存在於解答中,因此剩餘的位置會由僅位置錯亂線索中的第三個數字填入。
  4. 輸入完整密碼並提交。可使用 10 位數鍵盤、實體的 0 到 9 按鍵,或觸控裝置。三個位置填滿並完成提交是唯一能進行評分的路徑。
  5. 確認 1,000 分的完成獎勵。一個正確且唯一的密碼會恰好頒發 1,000 分,並凍結分數、紀錄與回饋,直到下一局開始。

前往 Crack the Code 親自遊玩這個謎題,以便根據實際的線索列與鍵盤驗證每個步驟。

評分、錯誤與 1,000 分的完成獎勵

計分刻意保持簡單。沒有速度加成、線索倍數、部分給分,也沒有依據首次嘗試錯誤密碼而定的懲罰。第一次猜測就提交正確密碼,與經過一次不同錯誤猜測後提交正確密碼,皆同樣恰好獲得 1,000 分。出現第二次不同的錯誤密碼後,該局會陷入死鎖,所有提交動作都會凍結,因此 1,000 分只能在最多出現一次不同錯誤密碼就結束的局中獲得。

錯誤預算非常緊縮。一個完整的錯誤密碼僅會被記錄一次。第一次出現的不同錯誤密碼仍可修復:清除輸入或編輯它,然後嘗試另一個候選答案。第二次提交相同的錯誤密碼會返回相同的狀態參照,不會複製歷史記錄、不會消耗第二次錯誤額度,也不會改變回饋。第二個不同的錯誤完整密碼會使該局陷入死鎖。此時唯一答案會被揭曉,所有數字、刪除、清除與提交動作都會凍結,直到你按下「重置局」為止。完成同樣也是終止狀態:輸入 507 並提交後,分數、密碼、嘗試紀錄與回饋都會凍結。

鍵盤與觸控輸入規則

介面無需依賴顏色即可使用。線索以文字標示其計數,位置顯示數字或底線,不同的錯誤密碼會被列出,狀態文字會同時顯示已使用的錯誤次數與目前已輸入的數字。所有鍵盤按鈕都具備原生語意,且至少有適合觸控的最小高度,版面配置可在 390 像素的視口中容納五行而不會溢位頁面。

數字按鈕會由左至右依序附加,直到三個位置皆被填滿。實體的 0 到 9 按鍵功能相同。退格鍵或 Delete 鍵會移除最後輸入的數字,Enter 鍵提交,清除猜測鍵僅清空目前的輸入。重置局鍵則會還原整個遊戲,包括嘗試紀錄與任何終止狀態。不完整的輸入是安全的。提交零、一或兩個數字時,系統會回報還剩多少個位置未填,但不會記錄錯誤嘗試,這讓鍵盤或觸控使用者能在不消耗有限錯誤額度的前提下,修正不小心提前按下的 Enter。第四個數字及任何非數字的程式化輸入都會在影響狀態之前以原子方式被拒絕,而可見的控制項在提交前就能防止這兩種情況。共享的雙重 Escape 老闆模式會暫時將謎題替換為中性的試算表畫面;離開老闆模式後,密碼、錯誤紀錄、分數與終止狀態皆會保持不變。

為何唯一性能由窮舉搜尋加以證明

產品包含一個純粹的評分器和一個候選答案列舉器,但發行測試不接受其中任何一個作為其自身的判準。取而代之的是,它定義了一個獨立的字面線索表,實作自己的完全正確移除與未配對頻率映射,將從 0 到 999 的每個整數補零,並篩選全部 1,000 個候選答案。這個獨立的遍歷過程僅返回 507。測試會將實際執行結果與該單一元素的判準集合進行比對,同時也會測試上表所列的評分邊界。

狀態測試涵蓋了不完整安全性、首次錯誤修復、相同錯誤的原子性、第二次不同錯誤的死鎖、前導零輸入、刪除、數字上限強制、無效字元拒絕、完整重置形狀、精確分數,以及凍結的終止狀態。每個明確的行為都有具體的斷言,而非依賴視覺印象,因此 507 的唯一性是機械性的,而非僅止於主張。一切皆在瀏覽器中於本機執行,沒有任何猜測或分數會被上傳,而隨附的測試資料意味著相同的線索與相同的唯一答案在頁面載入後仍可離線使用。Crack the Code 是休閒娛樂,而非智力測驗、能力測量工具、課堂分班工具、招聘篩選、健康檢測或心理評量,而 1,000 分的結果屬於娛樂行為,而非標準化的推理測量。若要無輔助地解題,請從顯示 7、5 和 0 同時存在的僅位置錯亂線索開始,然後利用 527 中的兩個完全正確位置來確定其順序。

如需更深入的探討,請參閱1 到 9 數字遊戲中是否允許對角移動?

如需更深入的探討,請參閱Corsi 方塊測驗與數字廣度測驗的差異