秒看出胡牌了!網曝麻將贏錢秘技「3個一組找眼睛」 賺紅包靠這招

過年期間最重要的就是和家人、親戚聚在一起,享受年節的氣氛,更重要的是在吃完大魚大肉後在牌桌上大殺四方,一股氣勢不戰到三更半夜不罷休。其實打麻將除了有趣之外,從理牌到胡排開始,就需要使用一連串的技巧。

今年特別整理了過年麻將胡牌攻略,讓各位可以在麻將桌上戰無不勝。國立台灣師範大學數學系副教授郭君逸教大家用數學破解麻將,從基本的組合開始觀察胡牌牌型,不用靠著背牌照樣贏光一堆老手。

▲一眼就知道胡牌了沒,用數學冷知識專業打麻將。(圖/取自UniMath)

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

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

電腦程式如何判斷聽牌?

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

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

▲一眼就知道胡牌了沒,用數學冷知識專業打麻將。(圖/取自UniMath)

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,

      o 拿掉 66,剩 234567888,胡!!!

      o 拿掉 88,剩 234566678,沒胡

● 加入3,

      o 拿掉 33,剩 456667888,沒胡

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

● 加入4,

      o 拿掉 44,剩 35 開頭,沒胡

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

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

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

奴役電腦幫你辦事

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

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

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

眼睛的判斷

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

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

▲一眼就知道胡牌了沒,用數學冷知識專業打麻將。(圖/取自UniMath)

例如上面的牌型,其中三六九牌共 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 的倍數,利用張數就可以推判眼睛在哪個花色,所以只要能判斷其中一種花色即可。

假想一個更困難的例子,每張牌可以超過 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,胡牌。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。