24 遊戲求解器是一個瀏覽器工具,能傳回所有將四個整數恰好湊成 24 的合法算式,每個數字僅使用一次,僅允許加、減、乘、除四則運算以及括號。它會對所有合法的配對與運算順序進行窮舉搜尋,然後顯示最多 50 個滿足規則的不同算式。每個結果會以完整算式接著 = 24 的形式呈現,因此產生答案的括號化方式會直接顯示在輸出內容中,而不是隱藏在是非題的判定結果裡。由於搜尋過程會將中間結果以最簡分數而非浮點數保存,像 3, 3, 8, 8 這類需要分數中間值的牌組才能被正確捕捉並回報。當工具在窮舉後仍無解時,該結論即為四則運算下的最終答案,而非部分搜尋後的猜測。

24 遊戲求解器的功能
經由加州大學聖克魯茲分校數學計畫所記載的經典 24 遊戲規則,說起來很簡單,玩起來卻意外困難:給定四個數字,必須使用 +、−、×、÷ 與括號把它們結合起來,使結果恰好等於 24。每個數字必須恰好使用一次,且不得使用其他運算。24 遊戲求解器以機械化方式套用該規則,窮舉你所輸入四個數字的所有合法分組方式,並回報可行的組合。
在內部,求解器會逐步縮減問題。每一步會從目前的數字池中挑選兩個項目,分別以加法、乘法、兩種減法順序,以及兩種非零除法順序進行合併,再把新結果放回池中。重複這個過程即可探索不同的配對與括號結構,直到池中僅剩一項為止。若該最終項等於 24,便記錄下構成它的完整算式;若四個輸入在這些步驟下都無法化為 24,搜尋便以無解作結。
輸出上限為 50 個算式,這能讓頁面在牌組擁有許多等價排列時仍保持易讀。同一算術概念的不同重排仍可能出現,因此這份列表應視為一組合法組合,而非宣稱每個等價類別只有一個標準答案。
如何逐步解出 24 遊戲的一手牌
- 在 24 遊戲求解器頁面的四個輸入欄位中,各輸入一個 1 到 99 之間的整數。
- 點選 Solve 以啟動對所有合法配對、兩種減法順序、兩種除法順序,以及所有括號結構的窮舉搜尋。
- 由最內層括號向外讀取每個傳回的算式,依括號指定的順序套用四則運算。
- 將毫無結果視為最終判定:若頁面顯示無解,表示在四則運算下這四個數字無法組合出 24。
四個輸入欄位各自只接受一個整數,且僅接受 1 到 99 範圍內的整數。由於輸入上限為 99,中間的整數乘積會落在 JavaScript 的安全整數範圍內,因此運算不會悄悄溢位。搜尋結果會傳回完整的含括號算式,後接 = 24,讓你直接檢查所提出的答案,而非照單全收一則未經解釋的成功訊息。
為何精確分數對某些牌組至關重要
有幾組能湊出 24 的牌組需要分數型的中間結果。教科書上的例子是 3, 3, 8, 8,它沒有任何一路保持整數到最後步驟的解法。使用浮點運算比較的求解器可能會完全錯過該路,或將接近的結果誤報為精確相等。24 遊戲求解器透過將每個中間結果儲存為最簡分數——一個整數分子、一個正整數分母,並在每一步先約分——來同時避開這兩個陷阱。
與 24 的相等性檢查於是化為分子 = 24 × 分母,這是精確的整數比較,而非對浮點數進行容差檢查。僅僅接近 24 的數值絕不會被視為精確,而有效的循環小數路徑也不會因捨入誤差而遺失。1, 5, 5, 5 這組牌同樣能驗證這個特性:它有解,但過程中間必須經過分數;純整數求解器會將其誤報為無解。
如何閱讀傳回的算式
結果列表中的每個算式都是完整的含括號形式,而非由左至右的平面串接。最內層括號會先運算,再往外一層,依此類推,直到整個算式化為 24。隨意移除括號會改變運算順序,這是不安全的;工具刻意顯示括號是有理由的。
以 3, 3, 8, 8 這組牌為例,其中一個傳回的算式為 8 ÷ (3 − 8 ÷ 3) = 24。逐步閱讀:8 ÷ 3 得到 8/3,接著 3 − 8/3 等於 9/3 − 8/3,亦即 1/3,最後 8 ÷ (1/3) 等於 8 × 3,也就是 24。同樣的算式若不帶括號,會由左至右運算而得到不同的數,因此括號是答案的一部分。
由於搜尋會同時產生兩種減法順序與兩種除法順序,你可能會看到多個僅在運算元順序上不同的算式。這是正常現象,反映的是底層代數結構,而非不同問題的不同解法。
作為驗證基準的牌組
有幾組牌能可靠地測試規則的不同部分。下表彙整 24 遊戲求解器對各組牌的分類,以及它被納入測試集的原因。
| 牌組 | 在四則運算下是否有解? | 測試內容 |
|---|---|---|
| 1, 2, 3, 4 | 是 | 不需要分數的簡單乘積路徑 |
| 3, 3, 8, 8 | 是 | 需要分數中間值的經典難題 |
| 1, 5, 5, 5 | 是 | 另一條分數路徑,但構造方式不同 |
| 1, 5, 11, 13 | 否 | 確認無解的牌組會被正確回報為無解 |
1, 5, 11, 13 這組牌之所以納入,是因為一個正確的求解器必須能在無解時明確告知,而不只是有解時才給答案。一個獨立的、以分數為基礎的檢查工具能在不匯入生產實作的情況下重現相同的可解性分類,這對搜尋行為是很好的交叉驗證。
當工具回報無解時
若頁面回傳無解,表示窮舉搜尋找不到任何將四個數字各使用一次,僅以加、減、乘、除與括號運算後等於 24 的算式。這是針對所顯示的規則與輸入限制所下的確定性結論,而非逾時或跳過運算後的退而求其次。
在將「無解」視為定論之前,值得檢查兩件事。首先,四個數字是否正確複製,因為單一筆誤就能改變牌組的可解性。其次,原始題目是否採用相同的運算規則。若題目允許次方、階乘、數字拼接或重複使用某個數字,那就是另一個問題;刻意受限的求解器可能不會顯示其答案。24 遊戲求解器不會加入拼接、指數、階乘、根號、小數點插入、把一元負號視為額外運算,或重複使用某個數字;結果是否成立完全取決於這項約定。
若想對分類結果取得第二意見,同一套規則可在 UC Santa Cruz 24 遊戲計畫 找到說明,並可獨立與 4nums 進行交叉比對。兩者都將四則運算視為唯一允許的運算集合,這也是本求解器所實作的約定。
在課堂或解題練習中,自然的工作流程是先自行嘗試該組牌,再點選 Solve 比較你的構造與傳回的列表。若你的算式與列表中的某個相符,工具只是確認了你的答案;若列表中包含你遺漏的算式,由內而外的閱讀順序通常足以讓你看出竅門所在。
求解器不會做的事
24 遊戲求解器只回答一個狹隘的問題:根據既定規則,你提供的四個數字能否恰好湊成 24,以及具體由哪些算式達成。它不會產生隨機謎題、評比難度、教授保證最短的解法,也不會驗證你自行輸入的算式。它並非更廣泛的 24 遊戲策略教學工具,也不會在允許次方或階乘的替代規則下進行裁決。
所有處理都在瀏覽器端完成。四個數字與產生的算式不會被上傳、儲存或綁定任何帳號,也不需要登入。沒有使用次數限制,因此同一組牌可以反覆執行,一邊在紙上推敲;緊接著再驗證下一組牌也完全免費。
若想深入了解謎題本身,可參考相關指南:如何從任意四個數字湊出 24,該文採取更偏向教學的取徑。本求解器則是其驗證搭檔:丟給它一組牌,它就回傳可行的構造清冊。
若想更深入了解,請參閱 24 遊戲求解:為何分數運算勝過整數猜測。