四則運算顯功力 - 算 24

算 24 的威力

算 24 (24 Game) ,亦有人稱作 24 點,是一種撲克牌 (Poker Cards) 的玩意。以每一張牌代表一個正整數,隨意抽四張,看看可否把該四個數字,各只出現一次,以加、減、乘、除四則運算及括號 (亦有玩法包括乘方) 創作一道算式,使算式結果為 24。有人為了方便起見,抽起 J、Q、K 和小丑牌 (Joker) 不用;亦有人把 J、Q、K 視作 11、12 和 13 一起使用;甚至有人連小丑牌也用,視為 14,其實玩法很多,只要玩方約定了便行。

 

有人喜歡自我娛樂,自抽自答;有人喜歡分隊競先,由一主持人抽問,看誰最先搶答;有人喜歡把答案記下,然後待所有人答畢後,一次開看:玩法多樣,任君選擇。

 

說來不知,此遊戲最先出現於 1960年左右的上海,及後在中、美兩國相當流行。

 

說回該遊戲,若抽到 A、2、3、4,我們可以作

1 * 2 * 3 * 4 = 24

(1 + 2 + 3) * 4 = 24

這兩式或別的算式。

 

又如,抽到 10、J、Q、K,我們可以作

13 + 12 - 11 + 10 = 24

 

若抽到相同數字,便代該數字得使用多次,如抽到 5、8、8、9,便代表算式中得有兩個 8,我可以

(9 - 5) * 8 - 8 = 24

9 / (8 - 5) * 8 = 24

 

為何算式的結果一定要 24 呢?我想可能因為 24 因子 (Factor) 較多,可以較容易組合出來。所以玩算 24 可有策略,基本的我們可以使用一些可以組成 24 的組合,如 3 * 8 、 2 * 12 、 4 * 6 、 10 + 16 、 25 - 1 等,然後再思考如何用手上的數字組合成相關的部件。其次是如何使用大數字,因為對於 9 以上的大數字,我們通常不太善用,懂得如何使用也是一個關鍵。然而有的抽出來的牌的組合任你怎拼也拼不出  24 來,也許判斷是否可以拼成 24 也是需要玩者的智慧。看,這遊戲需要工具不多,亦可以有效訓練數學計算能力,大家不妨試玩一玩。

 

算 24 的組合

其實要全找給定數值的算 24 解也不難。給定四數,如 A、B、C、D,我們可以把四數打橫列寫。但得問誰先誰後呢?這兒有 4! = 24 個不的組合。

ABCD ABDC ACBD ACDB ADBC ADCB
BADC BACD BDAC BDCA BCAD BCDA
CDAB CDBA CADB CABD CBDA CBAD
DCBA DCAB DBCA DBAC DACB DABC

 

我們定了四個數字的「出場序」以後,還得問問誰先作計算,即括號的配置,方法不外如下五種:

((X, X), X), X 或 (X, (X, X)), X 或 X, ((X, X), X) 或 X, (X, (X, X)) 或 (X, X), (X, X)

 

當中每兩個數字之間的運算符號可以是加、減、乘、除 (或乘方) 中選其一。 當然我們實際書寫時,把當中一些括號刪掉也不影響到計算的順序。

 

總結,只用四則算法的話,那不過是 4! * 5 * 43 = 7680 種可能結果而已;縱然再加上乘方,也不過 13500 種可能結果而已。其實這萬多種能結果是有重覆的。不論如何,我們可把當中各個可能作試算,把等同 24 的算式列出便成。

 

再考慮及不同牌值的組合,我們有 13+3C4 個,即 16*15*14*13 / 24 = 1820 個。故若閣下希望找齊所有二十四點的解的話,只要作下列次數的測試便可以:

1820 * 7680 = 13977600 或 1820 * 13500 = 24570000 次

以現代的科技,也用不著待多久呢。

 

順便一言,若只允許使用四則作運算方法,則在這 1820 個組合中有 458 個組合無解,若允許使用乘方的話,這數目也會因而減少。

 

偶爾在網上找到一個程式 (http://www.mathfan.com/Common/HTML/GAME/24.html), 未知是否應用了我先前說過的方法。但這程式可以在給定四張撲克牌的牌值和要求的結果,便可找齊不同的,以四則和乘方組成的算式,有興趣者不妨登網一試。 本人把此程式的結果集結,編成一個解集,「二十四點玩法提要」,有興趣者可下載一看。

 

算 24 的推廣

推廣一:增加運算方法

我們可以增加乘方、平方根 (Square Root)、小數點、循環點等運算方法,甚至階乘 (Factorial)、素連乘 (Primorial) 、把兩個單位數合成一個雙位數等,以增加可運算的組合數和運算方式。

如抽到 A、A、A、2,只用四則,我看不出這組合有解法。現在我們可以

(1 + 1 + 1 * 2)!  = 24

(11 + 1) * 2 = 24

但我們得留意一點,加、減、乘、除或乘方都是把兩個輸入值變成一個輪出值的運算,但平方根、階乘或素連乘卻只需要一個輸入值。如 9 的平方根為 3,我們如接納使用平方根,我們便可以把 9 視作 3 來運用;又如 3! = 6,協定了容許使用階乘,也得要容許 3 可作 6 來用:這樣運算容易了,但動腦筋的機會也少了。

 

推廣二:增加抽牌數目

我們可以增加牌數,以增加使用的數字數目,但留意我們縱然可抽五張牌,也不會有五個相同的數值,為何?看看自己的那副樸克牌吧。

如以五張牌 A、3、5、7、9,我們可以

(3 + 5) * (9 - 7 + 1) = 24

(1 + 5) * (7 - 9 / 3) = 24


 

推廣三:改變答案數值

我們可以改變 24 這個答案的數值,但得找一些因子較多且大小合宜的數字作答案,如 18、28、30、36 等。

如以四張牌 2、4、6、8 製作算式,使結果為 28,我們可以

6 * 4 + 8 / 2 = 28

 

這些推廣可以混合使用,增加這遊戲的耐玩程度。

 

參考文獻及網址:

Wikipedia. "24 Game." From Wikipedia. http://en.wikipedia.org/wiki/24_Game.

李尚志 ,  "算 24 - 運算律點石成金" , 自 數學的神韻 , 北京 : 科學出版社 , 2010 , pp 1-3.