打麻將的數學冷知識(二):如何一眼就知道胡牌了沒

打麻將的數學冷知識(二):如何一眼就知道胡牌了沒
圖片來源:電影劇照

我們想讓你知道的是

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

文:郭君逸(國立台灣師範大學數學系助理教授、魔術方塊收藏家)

打麻將的數學冷知識(一):在拿牌階段最能合作作弊的,是對家

麻將胡牌的演算法

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

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

電腦程式如何判斷聽牌?

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

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

1
圖片來源:作者提供

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

定理1

一副牌P,若把一個對子(俗稱眼睛)拿掉後,假設此時數字最小的牌是x,

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

則「P胡」若且唯若「Q胡」。

舉個例子說明:

例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不是胡牌型。

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

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

只要試著加入任何一張牌,再嘗試拿掉各種可能的眼睛,利用定理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,略,胡

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

奴役電腦幫你辦事

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

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

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

眼睛的判斷

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

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

2
圖片來源:作者提供

例如上面的牌型,其中三六九牌共7張,二五八牌共6張,一四七牌共4張。

這樣一眼就知道沒有胡牌,完全不用去試。

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

獨門秘技

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

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

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

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

定理2

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

回到古天樂手上拿的牌型來說:23333444455556666是否胡牌呢?

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

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

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


猜你喜歡


AWS台灣雲端高峰會8月10日登場:實體活動盛大回歸,技術開發到產業趨勢兩日全掌握

AWS台灣雲端高峰會8月10日登場:實體活動盛大回歸,技術開發到產業趨勢兩日全掌握
photo credit:AWS

我們想讓你知道的是

2022AWS台灣雲端高峰會將於8月10日在台北南港展覽二館盛大登場,聚焦雲端9大主題、超過45場產業與技術專題演講,為開發者與經理人提供深度交流機會,任何與雲端有所接觸的工作者都不容錯過。

AWS公開年度雲端技術盛會──2022 AWS台灣雲端高峰會(AWS Summit Taiwan)即將在8月10日至8月11日於台北南港展覽館二館舉行!歷經新冠疫情紛擾,睽違兩年AWS台灣雲端高峰會即將重回實體舉行,讓每位參與者走入規劃豐富的實體專區與各路開發者深度共學。立即報名點此

今年主題「佈雲今日 ‧ 決勝未來」明顯表達數位轉型已是現在進行式。隨著新冠疫情及國際局勢改變的雙重影響,全球迎來的新常態經濟模式使雲端技術不再只是企業應變關鍵,更是走向安全、永續,以及鏈結未來的必經之途。因此,2022AWS台灣雲端高峰會中將展示當代最前瞻的雲端趨勢,帶領參與者運用現代化雲端洞悉市場數據,探索商業與技術的無限可能。

聚焦九大雲端主題:基礎設施、技術開發、數位轉型到產業實務面面俱到

9大雲端主題02
photo credit:AWS

今年AWS台灣雲端高峰會不只集結領域中傑出的AWS技術專家、產業代表以及社群領袖,舉辦超過45場的產業及技術專題演講,分享最佳實踐案例、Demo 實機展演和客戶案例分析,還規劃包含證照認證、實作演練、CISO實戰工作坊等與AWS相關課程及工作坊。除此之外,會場也設置「AWS Game day & Developer Lounge」與「新創焦點」兩大專區,讓會眾能在精心規劃的空間內與其他開發者、新創公司透過高度互動的競賽與短講,深度交流彼此技術與經驗。

立即報名:2022 AWS台灣雲端高峰會

2022年,AWS台灣雲端高峰會致力打造深度交流的產業平台,聚焦雲端技術的九大面向,搭配各具特色的活動設計,從基礎設施、技術開發、數位轉型到產業實務面面俱到。不僅為 C-level 與資深技術人員、企業經營與 IT 決策與管理者精心規劃議題內容,也在特別企劃內容中,為 IT Pro、解決方案架構師、開發人員、工程師與維運管理人員提供最佳實務經驗,讓無論AWS初學使用者還是資深產業經理人,都能在高峰會中吸收新知、了解趨勢,提升自我能力與視野。

無分初學大師,只要接觸雲端,你就應該參加AWS台灣雲端高峰會

符合以下關鍵字之一,你就應該參與AWS台灣雲端高峰會:

  • 學無止盡-開發者、工程師、架構師
  • 商業創新開發-新創團隊技術團隊成員
  • 最佳化生產力- IT專業人員、技術支援經理
  • 掌握趨勢-創辦人、經營決策者
  • 自我精進-學生、教職員、研究員
  • 洞見趨勢-任何關注雲端趨勢者

AWS台灣雲端高峰會首日聚焦雲端服務、開發技術及新創,以技術相關內容為主,較適合具備初級主題知識之開發人員、工程師與 IT 專業人員;次日則圍繞產業解決方案提供、數位轉型等,以應用相關內容為主,較適合欲了解雲端技術如何為企業經營加分之經營決策者、解決方案架構師以及系統管理員。

立即報名:2022 AWS台灣雲端高峰會

如此縝密的規劃,無論是初上雲端的新手,還是乘雲縱橫產業多年的技術大師,甚至是非技術相關人士,都能在高峰會中依照自身工作職掌和興趣,安排個人化的專屬議程,從不同主題和技術能力演講中,滿足個人技術或視野的成長。

最重要的是,2022AWS雲端高峰會為免費參加,絕對是任何需要開拓雲端新經濟、自我加值的工作者不可錯過的年度盛會。

玩轉雲端核心技術!AWS DeepRacer人工智慧賽車同步登場

AWSDR
photo credit:AWS

每年與台灣雲端高峰會共同舉行的「AWS DeepRacer智慧自駕車競賽」當然也不會缺席。AWS DeepRacer是 Amazon 產品背後所運用之人工智慧和機器學習等核心技術的具體化身,不僅是全球首個以自駕車競賽為主題賽車聯盟,也是機器學習(ML)與強化學習(RL)最友善、有趣、刺激的學習課程。

競賽設計不只替雲端技術增添不少趣味,激起各方開發者爭奪獎品、獲取冠軍榮耀的鬥志,搭配AWS所提供的免費入門課程及學習資源,更創造出技術學習與推廣的友善環境,也是AWS送給所有工程師最棒的寓教於樂場域。

精彩豐富的專題講座與寓教於樂的刺激競賽還不夠嗎?活動現場還有抽獎活動、深度參會集點以及問卷好禮,提早報到者再加碼早鳥禮!

立即報名豐富有趣的 2022 AWS 台灣雲端高峰會!


猜你喜歡