24 點求解器從 1 到 99 之間取出四個整數,搜尋所有合法運算的組合(包含四則運算和括號),最多回傳 50 個恰好等於 24 的不同算式。搜尋過程採用最簡分數而非二進位浮點數比較,因此需要小數中間值的算式可以被精準配對,僅僅接近 24 的數值絕不會被回報為解答。合約遵循加州大學聖克魯茲分校數學系所記載的經典規則:四個數字必須各使用恰好一次,僅能以加、減、乘、除互相組合,並透過括號決定運算順序。字串拼接、次方、階乘、開根號、插入小數點,以及重複使用數字皆刻意排除於求解器範圍之外。若一手牌在上述規則下無法湊出 24,頁面會回傳「無解」的判定,代表的是窮舉搜尋找不到構造式,而非工具本身的失敗。

24 game solver
24 game solver

什麼構成一局有效的 24 點牌組

一局有效的 24 點牌組是由恰好四個正整數所組成,必須將它們組合成一個算術算式,使結果恰好等於 24。組合規則比乍看之下更為嚴格。每個數字必須在最終算式裡恰好出現一次,因此像 1、2、3、4 這手牌,即使 2 × 3 × 4 = 24 確實成立,也不能視為解答,因為輸入的數字 1 已被略去。唯一允許使用的運算只有四則運算:加、減、乘、除。括號是被允許的,因為它代表運算的執行順序,也是區分有效 24 點構造式與由左至右扁平計算(無法命中目標)的關鍵。

此界線刻意排除多個在變體謎題與延伸規則中常見的捷徑。求解器不會串接數字,因此 1、2、3、4 無法合併成 12、34 或 123。次方、階乘、平方根與插入小數點皆已關閉,因為上述任一運算都會讓許多原本無解的牌組湊出 24,並產生基本規則社群所不接受的解。額外的「一元負號」運算同樣被排除;前綴的負號僅視為兩項之間減法的一部分。加州大學聖克魯茲分校數學系在其 24 Game description 中記載了這套規則,位於 4nums 的獨立分數驗算工具則以相同的基本運算交叉檢驗可解性。

商業撲克牌版本有時會進一步限制輸入範圍,但 24 Game Solver 刻意接受任何四個介於 1 到 99 之間的正整數,同時維持標準的運算合約。這個更寬廣的範圍讓同一套工具能涵蓋課堂練習、應用程式內的謎題,以及教師或謎題設計師可能構造的較長數字牌組,而不必更改底層規則。

如何使用 24 點求解器

  1. 在四個輸入欄位中各輸入一個整數,共輸入恰好四個介於 1 到 99 之間的數字。
  2. 點選 Solve,以精確分數窮舉搜尋所有允許的算術運算。
  3. 由括號內部向外讀取任何回傳的算式,將每個分組視為單一項,直到僅剩結果 24 為止。
  4. 若頁面回報無解,請將其視為基本規則下的判定;在認定牌組不可解之前,先確認原始謎題採用的是同一套規則。

所有運算都在瀏覽器內執行,因此四個數字與所產生的算式都不會被上傳、儲存或連結到任何帳號。無需登入,亦無使用次數限制,使得此工具適合重複的課堂練習、重複測試精選牌組,或快速檢驗單一謎題。

分數運算如何維持結果精確

24 點搜尋中最困難的部分並非列出運算,而是如何安全地處理除法。數個著名的牌組,包括 3、3、8、8 和 1、5、5、5,只有透過小數中間值才能湊出 24。若求解器採用二進位浮點運算,這些牌組要嘛會四捨五入成不等於 24 的數值,要嘛會因為累積的捨入誤差而錯失等號檢查。求解器透過將每個中間值儲存為最簡分數來避免這個失敗模式:整數的分子與正整數的分母,並在每一步以最大公因數約分。等號檢驗則化為單一的整數比較:分子必須等於 24 乘以分母。僅僅接近 24 的數值永遠不會相符,而通過循環小數的有效路徑得以完整保留。

以 3、3、8、8 這手牌為例。一個有效的構造式為 8 ÷ (3 − 8 ÷ 3) = 24。逐步來看:8 ÷ 3 = 8/3,接著 3 − 8/3 = 1/3,然後 8 ÷ (1/3) = 8 × 3/1 = 24/1,符合分子等於 24 乘以分母的條件。窮舉搜尋會在每一步同時列舉兩種減法順序與兩種除法順序,因此分母為負的情況不會污染結果,遞迴選取無序配對的過程則會窮盡所有括號結構,直到僅剩一個項為止。

由內而外解讀回傳的算式

求解器回傳每個完整算式時,末尾會附上 = 24,因此提案答案可以直接驗算,而不是被當作未解釋的成功而接受。運算順序遵循括號:每一對配對的括號都是一個子算式,應優先計算,然後將結果交回外層項,如此反覆,直到最外層運算收斂為 24。針對四個數字的牌組,通常會出現三對括號,自然的習慣是從最內層分組開始,將其代換為數值,並讀取化簡後的外層算式,直到最終數字為止。

括號具有關鍵意義,不可隨意移除。算式 (1 + 3) × (2 + 4) 讀作 4 × 6,等於 24。相同的數字若無括號,寫成 1 + 3 × 2 + 4,則讀作 1 + 6 + 4,等於 11。因此兩串相同的符號可能代表截然不同的算術意圖,差異完全取決於括號。當你以人工驗算回傳的算式時,即使化簡後的結果看似顯而易見,仍應將括號視為運算順序的唯一依據。

當「無解」即為判定

若頁面回報無解,代表的是窮舉搜尋已探遍所有無序配對選取、所有跨運算的配對(涵蓋兩種減法順序與兩種非零除法順序),以及在公開運算集合下可達成的所有括號結構,卻找不到任何能化簡為恰好 24 的構造式。此判定並非工具的故障,而是針對該手牌在既定規則下的結論。求解器標記為無解的牌組依然是一個完全有效的數學物件,只是單純以 +、−、×、÷ 與括號組成的算式無法從它湊出 24。

一個著名的例子是 1、5、11、13。在基本規則下此手牌無解,任何聲稱有解的求解器要不是允許了被禁止的運算,就是將不精確的中間值四捨五入了。在接受「無解」結果之前,唯一值得檢查的事項為:四個數字是否已正確抄入欄位,以及原始謎題是否採用與本求解器相同的運算規則。允許次方、階乘、串接或重複使用數字的謎題屬於不同的問題,其答案可能是這個刻意受限的求解器所不會列出的。

求解器會驗算的測試牌組

一小組著名的牌組涵蓋了求解器必須處理的大部分行為。僅需整數路徑即可解的牌組,確認最簡單的途徑仍然有效。需要小數中間值才可解的牌組,證明最簡分數運算確實發揮了作用。在基本規則下不可解的牌組,則證明「無解」判定並未被過度聲稱。

牌組基本規則下的分類為何重要
1, 2, 3, 4可解任何可運作的求解器都必須找到的簡單整數路徑。
3, 3, 8, 8可解需要小數中間值 8/3;僅整數搜尋會錯過它。
1, 5, 5, 5可解需要小數中間值 1/5;透過基本運算化簡為 24。
1, 5, 11, 13不可解證實「無解」判定是誠實的,而非錯失的配對。

其中兩手牌同時也是練習素材:在開啟求解器前先在紙上試試 3、3、8、8,然後將你的構造式與回傳的算式清單比對,看看你是否找到一個求解器未列出的形式,抑或只是同一算術概念的重新排列。每次執行最多顯示 50 個不同的構造式;此上限使結果清單保持可讀性,也避免一個具備多種等價排列的牌組占滿整個頁面。由於結果清單依算式字串進行去重,只有當符號形式不同時,重新排列的構造式才會以獨立條目呈現,單純以不同順序書寫的同一算術概念並不會被重複列出。

在課堂或謎題練習中,自然的工作流程是先嘗試解一手牌,再以回傳的清單驗算你的構造式。若你的構造式未出現,請檢視括號;漏寫或放錯位置的括號,是人工計算的算式與求解器輸出不一致的最常見原因。若你的構造式有出現,這項吻合便是該牌組在求解器所執行規則下可化簡為 24 的直接證據。

若你正在權衡選項,24 Game Solver: Why Four Numbers Are Required, Not Three 對此有詳細說明。

若你正在權衡選項,24 Game Solver Algorithm: The Pair-and-Combine Method 對此有詳細說明。