Math Games

打麻將的數學冷知識:兵貴神速!如何一眼就知道胡牌了沒?

11 Feb, 2021
打麻將的數學冷知識:兵貴神速!如何一眼就知道胡牌了沒? Photo Credit: Shutterstock / 達志影像

2017年,威廉斯堡大學數學系的李志光教授等人,發表了一項麻將研究,論文中提出了一套高效率的判斷胡牌演算法,以下版本由筆者修改呈現。

文字:郭君逸

一個人會不會打麻將,有一項基本的判斷方法——「能夠判斷是否胡牌」。在實戰當中,判斷的速度越快越好,如此才能在取捨牌的時候,很快的知道打哪張牌聽的牌比較好,也不會因為停下來比畫思考,而被看穿手裡擁有的牌型。

要知道聽什麼牌,最快的方式是背起來。常打麻將的人,腦中自然背了不少牌型,常見牌型瞬間就能判斷,除非拿了許多同花色的牌才會造成困擾。

電腦程式如何判斷聽牌?
shutterstock_254267875
Photo Credit: Shutterstock / 達志影像

要判斷聽牌,得先知道胡牌的牌型,如同要準備晚餐的食材之前,得先知道晚餐想吃什麼。

一般都是刪除「一刻」(3張相同牌)或「一順」(3張連續牌),也就是所謂的「搭子」,再利用「遞迴」程序處理。這樣做的效率並不太優,雖然判斷一副牌還是瞬間完成,但若要判斷十萬副牌局,效率好壞造成的影響非常之大。

2017年,威廉斯堡大學數學系的李志光教授等人,發表了一項麻將研究,論文中提出了一套高效率的判斷胡牌演算法。以下版本由筆者修改呈現:

#定理01:

一副牌P,若把一個對子拿掉後,假設此時數字最小的牌是「x」,

若x的張數是3張以上,則拿掉3張x(一刻)後,剩下牌為Q。
否則拿掉x, x+1, x+2(一順)之後,剩下的牌為Q。(若無法拿,則P沒胡)

則「P胡」若且唯若「Q胡」。
shutterstock_267326777
Photo Credit: Shutterstock / 達志影像

聽起來很複雜嗎?下面舉個例子說明:

例1:判斷P = 33345678是否胡牌?

P中唯一能當眼的地方,就是3,因此把33一對眼拿掉,變成Q=345678,Q是胡牌型,所以P也是。

例2:判斷P = 55666777889是否胡牌?

其中55、66、77、88都可以當眼睛,每種情況都試一次。

  • 若55當眼,剩下666777889;最小的6有三張,直接拿掉666,剩777889,再拿777,得889,所以沒胡。
  • 若66當眼,剩下556777889;最小的是兩張5,但沒有辦法拿掉兩個567了,所以沒胡。
  • 若77當眼,剩下556667889;最小的是兩張5,但沒有辦法拿掉兩個567了,所以沒胡。

各種能拿掉眼睛的方式都試過,都無法胡,所以P不是胡牌型。

這樣做的好處,是只要拿掉一副牌的眼睛後,就可以一路由最小的牌取到最大的牌,依序檢驗,「線性時間」即可判斷是否胡牌,避免來來去去的反覆嘗試,省下非常多的計算時間。

shutterstock_1075923218
Photo Credit: Shutterstock / 達志影像

已經學會胡牌型之後,判斷聽牌就簡單了。

只要試著加入任何一張牌,再嘗試拿掉各種可能的眼睛,利用定理1判斷是否可以胡牌,即可得知聽哪些牌,僅需要O(n3)的時間。

例3:判斷3456667888聽什麼牌?

  • 加入1,剩13開頭,沒胡
  • 加入2

拿掉66,剩234567888,胡!
拿掉88,剩234566678,沒胡

  • 加入3

拿掉33,剩456667888,沒胡
拿掉66或88,剩334開頭,沒胡

  • 加入4

拿掉44,剩35開頭,沒胡
拿掉66或88,剩3445開頭,沒胡

  • 加入5,略,胡
  • 加入6,略,胡
  • 加入7,略,胡
  • 加入8,略,胡
  • 加入9,略,胡

上述方法雖然是電腦的判斷方式,但其實人腦判斷,也是相同道理,先把可能的眼睛拿出來,然後最小牌能拿走一刻即拿走一刻,否則試著拿走一順,由於人腦很強大,會自動省略一些無關緊要的判斷步驟,因此執行速度並不會太慢。

奴役電腦幫你辦事
shutterstock_6106063
Photo Credit: Shutterstock / 達志影像

有了快速判斷聽牌、胡牌的方法後,就可以開開心心奴役電腦幫我們做一些血汗計算了。

李志希教授的電腦幫忙跑了所有的情況,發現十三張麻將除了「國士無雙」(俗稱十三么)可以聽十三張牌之外,聽九個洞的情況只有一種:1112345678999,俗稱「九連寶燈」。而聽八個洞的情況有16種;聽七個洞的情況有79種。

筆者自己也計算了台灣麻將十六張的情況:聽九個洞的情況有11種,有1122233345678999、1112345667788999、1112345666777888、1112345566778999、1112344556678999,或是上述平移、對稱的牌型。聽八洞的情況有94種;聽七個洞的則有532種。

眼睛的判斷

李教授的方法告訴我們判斷胡牌與否,先找出眼睛會比較快。一旦眼睛的選擇多,事情就變得越複雜,電腦當然沒問題,但人腦判斷可能稍微慢了一點。此時,數學可以派上用場。

方法是這樣的,先只看同個花色,把所有的牌分成3堆:「一四七」堆,「二五八」堆,「三六九」堆,接著觀察每堆的張數。

c40wbxgsjnq0ylsk0lm5vaqbwjeo9o

例如上面的牌型,其中三六九牌共7張,二五八牌共6張,一四七牌共4張。這樣一眼就知道沒有胡牌,完全不用去試。

什麼!?為什麼可以這麼快?因為我有獨門秘技。

獨門秘技

若要胡牌的話,要抓成三個三個一組的搭子再搭配一對眼睛,搭子若是「順」,貢獻這三堆的個數必同時都加1;搭子若是「刻」,則某一堆會加3。

因此,若先不看眼睛,這三堆的牌數除以3的餘數應該要相等。再加上眼睛,就只會讓某一堆個數與其他兩堆不同。

以上例來說,三堆的張數分別為7、6、4張,除以3的餘數為1、0、1,於是,眼睛只有可能出現在第二堆,也就是二五八。若55拿掉,前半的33344無法湊成兩搭,因此沒胡;若88拿掉,依定理1,333也可以拿掉,剩下的局部44556也無法湊成兩搭,所以也無法胡牌。

我們再將這個結果寫成定理(沒辦法,數學家就是喜歡這樣XD)

#定理02:

一副牌,依一四七、二五八、三六九分成三堆,每堆的張數除以三的餘數必有一個與另兩個不同,則眼睛就在不同的那堆裡。

那麼,23333444455556666是否胡牌呢?

因為一四七有4張,二五八有5張,三六九有8張,除以3分別餘1、2、2,所以眼睛只可能是44,接著把44拿掉,剩下 233334455556666,然後利用定理1依序去拿,得到234、333、456、555、666,所以是胡牌型。

shutterstock_45588898
Photo Credit: Shutterstock / 達志影像

有了定理2,判斷胡牌時眼睛的可能性,可縮減到一堆,檢驗至多三次,大幅提升計算效率。

當整副牌同時有萬、筒、條、字的時候,因為眼睛只會在其中一種花色,因此其它花色一定都是3的倍數,利用張數就可以推判眼睛在哪個花色,所以只要能判斷其中一種花色即可。

假想一個更困難的例子,每張牌可以超過4張的話,請問:33333444555566777888899999有沒有胡牌?

  • 三六九,共12張,除以3餘0
  • 一四七,共6張,除以3餘0
  • 二五八,共8張,除以3餘2

所以若能胡牌的話,眼睛必是55或88:假設是55,利用定理1,由小到大拿成333、345、345後,剩466777888899999,而4的後面斷了,所以沒有胡。

假設是88,利用定理1,由小到大拿成333、345、345、456、567、789、789、999,胡牌。

參考資料

Yuan Cheng, Chi-Kwong Li and Sharon H. Li, Mathematical aspect of the combinatorial game "Mahjong", arXiv:1707.07345v1

本文經關鍵評論網授權刊登,原文發表於此

同場加映

責任編輯:古家萱
核稿編輯:林君玶

編輯精選

TNL 編輯精選好文轉載,感謝作者的熱情分享!

更多此作者文章

穿越2222年,未來選擇地給孩子一個想像,也給我們一個重新選擇的機會!台北華山親子逛展新選擇,啟迪孩子的永續生活教育

Art
20 Feb, 2023
穿越2222年,未來選擇地給孩子一個想像,也給我們一個重新選擇的機會!台北華山親子逛展新選擇,啟迪孩子的永續生活教育

前進2222到重返2023年,共打造四大展區,以永續為策展核心,讓「2222」這個天使數字成為一個親子共學的起點,師生共享的觀點,了解永續不一定是政府企業的高談闊論,從日常的選擇就可以參與永續行動!

從學校教育到未來職場,聯合國「永續發展目標SDGs」已成趨勢關鍵詞,永續發展共有17大項目標(註1),涵蓋環境、經濟、社會等面向,其實已經融入許多教育課程的設計,校園年度宣導的重點計畫,甚至成立永續相關研究中心與系所,以培育未來企業所需的ESG永續人才。

回顧近年全球歷經的肺炎疫情、極端氣候、通膨怪獸、能源危機等災難,讓人們更專注、更急迫面對世界的面貌與真相,需要肩負這個世代挑戰與達成永續目標的,正是我們的下一代:暖世代—成長於全球暖化、環境劇烈變遷的一代。他們從小戴著口罩抵抗病毒與空污,需要在擁擠的城市尋找遮蔽酷暑寒冬的屋簷,人類壯闊的文明發展將是「債留子孫」還是「永續未來」,其實,都取決我們每日的選擇!

《2222-未來選擇地》給孩子一個想像,也給我們一個重新選擇的機會

「永續發展目標SDGs」聽起來很艱深?如果我們說「一個200年後未來人的故事」你也許可以聽聽看!《2222-未來選擇地》是台灣首個原創永續概念展,於2023年1月6日-4月5日在台北華山1914園區展出,你可以在這裡參與永續美學的策展,觀賞跨界藝術與科幻故事的創作,透過沉浸式體驗,與未來人並肩前行穿越200年後的未來,守護最後的生機,捕捉污染機械獸,透過思考與選擇協助改變未來人的世界。

前進2222到重返2023年,共打造四大展區,以永續為策展核心,讓「2222」這個天使數字成為一個親子共學的起點,師生共享的觀點,連成你我共創的永續日常,圈起人與環境共好生活態度,並聯手台灣在地藝術家、綠色品牌、永續名人團體打造的永續學習場域。了解永續不一定是政府企業的高談闊論,從日常的選擇就可以參與永續行動!

親子逛展配圖1
準備穿梭2222時空旅途的孩子們。
親子逛展配圖3
遺落方艙-守護最後的生機。巨型生態植物瓶,聯手花藝設計品牌《煙花蕨醒》打造。
親子逛展配圖2
穿越2122年,探索海洋環境議題,熱門的踩踏區體驗。
親子逛展配圖4
「這個食物可以吃嗎?」打開驚喜的多重宇宙便當盒,孩子們從藝術創作探索永續的知識。
親子逛展配圖5
親子共學的永續餐桌,透過內容互動與永續美學探索環境與自身的關係。
親子逛展配圖6
永續的模樣由你決定!未來的主人翁正在規劃「拼」出永續的藍圖。

▶親子、旅遊部落客展覽開箱推薦

●小妞的生活旅程 :適合親子共賞的互動式永續展覽,教育意義十足

●艾麗絲愛旅行:台北展覽親子、師生看展新選擇!跟未來人一起成為改變歷史的關鍵

●小胖盈的花椒人蔘:台北展覽推薦:搭乘時光機到2222年的世界吧!科幻永續主題展,互動沉浸式體驗反思生活方式

▶展覽資訊

日期:2023/1/6 - 4/5

時間:10:00 - 18:00

地點:華山1914文創產業園區西4館&西5館

購票詳情洽:《2222-未來選擇地》

華山展場位置圖
▶展場提供觀展證書申請

完成觀展後,可於現場依照工作人員指示,完成電子證書申請流程,將於一週的工作天寄出證書電子檔案,提供大人、小孩一個觀展紀念。

觀展證書申請jpg

(註1)SDGs永續發展目標(Sustainable Development Goals)是一項全球共識,旨在2030年前實現可持續發展的一系列目標。由聯合國提出訂定17項明確目標、涵蓋169項具體指標,目的是實踐地球上所有面向的永續發展,包含地球環境保護、社會公平正義、永續經濟發展。

17項永續發展目標:

1.消除貧窮、2.終結飢餓、3.健康與福祉、4.優質教育、5.性別平等、6.淨水與衛生、7.可負擔的永續能源、8.就業與經濟成長、9.永續工業與基礎建設、10.消弭不平等、11.永續城鄉、12.責任消費與生產、13.氣候行動、14.永續海洋與保育、15.陸域生態、16.制度的正義與和平、17.永續發展夥伴關係。

責任編輯:Anita

核稿編輯:Joanna

行銷合作

TNL行銷是關鍵評論網集團行銷團隊的核心部門。聚焦於集團各品牌的獨特價值,希望以品牌力量聚集內容的愛好者,一同參與社群與實體活動,進而達到品牌的口碑效應。TNL行銷同時也是集團的聚合中心,與其他優質媒體、品牌一同合作,提供最新、有趣的資訊於市場,達到品牌與讀者雙贏的效應。

更多此作者文章