從24點撲克牌遊戲說開去
每天好玩的數學
學習 教育 文化 科普 - 有用 有趣 好玩
作者:蔣迅,王淑紅
節選自《數學都知道》叢書第一冊
「24點撲克牌遊戲」的遊戲規則是:任取除大小王之外的4張撲克牌,看能否在其間添加四則運算符號和括弧得出24。在這個遊戲里,由於限制在4個數和四則運算的範圍內,所以利用電腦程序檢驗運算結果相對簡單。有一位叫中大黑熊的博主編寫了一個僅有300行的Java程序,就不但提供了源程序,而且可以在GUI上顯示。我們來看一個具體的例子(如圖1):
圖1. 24點撲克牌遊戲 /作者
在這個例子中,我們有 (7-(8/8))*4=24。並不是每個組合都能產生24這個結果。比如A A A A(即1,1,1,1組合)就不能產生出24。另一方面,有些組合可以產生多種解法。比如,2 4 6 Q(即2,4,6,12組合)可以用2 + 4 + 6 + 12 = 24 或 4 × 6 ÷ 2 + 12 = 24 或 12 ÷ 4 × (6 + 2) = 24 等來求解。不管一個組合能否組成24,總共有多少個可能的組合呢?這是一個排列組合問題。我們要求的是有1到13個獨立數字的有重複的組合,可以用下式計算:
(註:用組合數學中的隔板法可以得到此公式,參見今天推送的第二篇文章)
即有1820個組合。可以用枚舉的方法證明,在這1820個組合中,有458個組合無解。當然這是嚴格限制使用加減乘除來運算的條件下。有的人允許乘方開方和指數對數等運算,那麼有解的情況就更多了。總之,大多數情況都是有解的,拿到牌之後我們不應輕易放棄。
我們給一個稍微有點挑戰的題目:5 5 5 A。有聰明的商人把能解的數組做成遊戲卡出賣,很受歡迎。圖1右是我在一個美國初中的數學教室里看到的。
那次去學校是為了觀摩他們的數學圈(Math Circle)活動的。講課的是幾個高中生,聽課的是一群初中生。老師看我有些無聊,就主動邀請我跟他玩一盤遊戲「Blokus」(如圖2)。這是一個有關幾何對稱的四人遊戲,能幫助學生熟悉幾何思維。
圖2. 美國數學老師有很多遊戲 /作者
其實,隨著我們數學知識的增長,大可不必再限制於4個1到13之中的數字和加減乘除四則運算上。事實上,英雄所見略同,早就有人打破常規,把乘方、開方、對數、取整甚至階乘運算擴大到了「24點撲克牌遊戲」。
現在,我們再擴大一點,允許有任意多個數字,而且等號的位置也可以是任意的。下面我們來舉例(如圖3)說明:如果已知3個數489、2、978,
圖3. Numenko遊戲題面 /numenko.com
那麼在489和2之間以及2和978之間,我們需要添加哪種運算符號和等號才能使得它成為一個等式呢?這個問題的答案如下圖(如圖4)所示:
圖4. Numenko遊戲解答 /numenko.com
上面這種擴展的「24點撲克牌遊戲」有一個專門的名字,叫做「Numenko」。
我們再來試想一下,能否也像中大黑熊一樣用Java語言寫一個自動驗證其計算結果的程序呢?不得不說,這個工作要複雜得多,絕不是300行程序所能完成的。那麼怎麼辦呢?不要著急,這時我們可以調用現成的軟體包來達到目的。MuParser就是一個理想的現成的軟體包。
順便再介紹一個類似於Numenko的趣味數學遊戲:「Hexa Trex」(如圖5左)。你的目標就是用上每一個符號並使等式成立。這個例子的解答為21+3=8×3(如圖5右)。
圖5. Hexa Trex遊戲 /作者
如果讀者不甘心用現成的軟體包,有興趣嘗試自己來寫程序驗證計算結果的話,那麼我們建議大家最好用Python語言,因為Python不但免費,而且支持數學表達式的讀取。而Matlab和Mathemaitica等商業軟體雖也有相同的功能,但不是免費的。
在下面的蜂窩狀圖形里(如圖6),你可以有3種移動方法:從一個蜂房到右邊緊挨的蜂房,到右上角緊挨的蜂房,或到一個右下方相鄰的蜂房。請問從A到B有多少條路徑?
(歡迎大家在留言區提交解答!)
圖6. 蜂窩狀圖形/作者
※與「24點遊戲」有關的兩個數學問題
※天氣預報的混沌科學:蝴蝶效應
※「蝴蝶效應」原來只是個科學寓言,其背後藏著個有趣的科學故事
TAG:好玩的數學 |
※1942年的小惡魔——從《驢得水》想開去
※從肯德基賣小龍蝦說開去
※從「打虎捉鼠「說開去
※著名藝術家嚴順開去世 享年80歲
※著名藝術家嚴順開去世,享年80歲
※讀書,從一隻蟋蟀說開去
※從足底器官映射說開去
※從廣州的寺廟說開去
※《復聯2》綠巨人開走的飛船終於找到!竟然開去找雷神了
※由紅樓夢裡的節日說開去
※從蘋果發布會說開去
※從武漢大雨水災說開去
※為什麼上帝是個程序員——從冪律分布說開去
※《阿Q正傳》嚴順開去世享年80歲,曾多次登上央視春晚舞台
※從長征五號的失利說開去!
※從東坡的水調歌頭說開去
※聊天如何撩到12星座,為什麼要想不開去撩摩羯座?
※從一張餅圖說開去……
※由《綉春刀2:修羅戰場》說開去 從電影中看明朝那些事