用概率戰(zhàn)勝你的親朋好友吧。
撰文|比鄰星
春節(jié)要玩好,獨(dú)樂(lè)樂(lè)不如眾樂(lè)樂(lè)。
如果要選擇一種聲音代表新春佳節(jié)的團(tuán)聚,除了噼里啪啦的鞭炮、杯盞相碰的清脆,一句“三缺一”和麻將桌上嘩啦啦的搓麻聲必定占有一席之地。
麻將在不同段位的玩家眼中代表著不同維度的世界。入門(mén)級(jí)小白只專注于面前的牌,久經(jīng)沙場(chǎng)的老手更有大局觀,心中裝著整個(gè)牌桌的乾坤。而在一名理科生眼中,麻將是一場(chǎng)概率游戲和策略博弈。
19世紀(jì)的麻將牌長(zhǎng)這樣丨圖源:Wiki
還真有數(shù)學(xué)家發(fā)表了關(guān)于“麻將數(shù)學(xué)”的研究論文,不僅編寫(xiě)程序計(jì)算胡牌的概率,更是致力于開(kāi)發(fā)AI打麻將的技能。當(dāng)然,機(jī)器人怎么打麻將倒是后話了,對(duì)于各位玩家而言,這些研究最大的價(jià)值在于能給麻將桌上的牌局以“***”的理論指導(dǎo)。
故事還要從清一色講起。
先補(bǔ)充點(diǎn)背景知識(shí)。標(biāo)準(zhǔn)麻將牌包含“筒”、“條”、“萬(wàn)”、“風(fēng)”和“箭”五套花色,每種牌有4張是相同的。4名玩家初始摸得13張牌,之后按照逆時(shí)針摸一張牌再打出一張牌,直到他摸到最后一張牌,14張牌可以湊成23333的排列組合,即為胡牌。
從上到下分別為“筒”、“條”、“萬(wàn)”丨圖源:Wiki
用公式表示就是
m*AAA+n*ABC+DDm,n可以為0
如果最終胡牌的牌面為同一花色,就叫清一色。
一個(gè)叫李志光的數(shù)學(xué)家發(fā)現(xiàn)了一種有趣的牌形。
好牌丨圖源:Mathematicalaspectsofthecombinatorialgame“Mahjong”
仔細(xì)看,你會(huì)發(fā)現(xiàn)下一張只要摸到的也是筒,不管是一筒到九筒中的哪一張,都可以胡牌。這牌,只要一推倒,眾人定有不明覺(jué)厲之感。
這樣的牌形叫“九門(mén)”(NineGate),李志光隨后聯(lián)想到,類(lèi)似的“八門(mén)”、“七門(mén)”、“六門(mén)”……都有什么樣的牌形,哪種出現(xiàn)的概率更高?
至此開(kāi)始,一個(gè)娛樂(lè)問(wèn)題成功上升為科研課題,行話叫“k門(mén)問(wèn)題”。
用數(shù)學(xué)符號(hào)代表剛才的牌形,那就是
計(jì)算概率,大體的思路就是嘗試所有Xi的組合,然后檢驗(yàn)每種組合是否符合k門(mén)的要求。這樣的重復(fù)性運(yùn)算,交給Python程序就夠了。
一段源代碼截圖網(wǎng)址鏈接:
https://cklixx.people.wm.edu/mathlib/Mahjong.py
結(jié)果是這樣的。“九門(mén)”的組合有且僅有一種,它出現(xiàn)的概率為0.000113;八門(mén)有16種;一門(mén)的組合則有14067種,出現(xiàn)的概率是0.148。
k門(mén)問(wèn)題只是個(gè)開(kāi)始,發(fā)現(xiàn)能用數(shù)學(xué)***研究麻將,另一個(gè)團(tuán)隊(duì)也躍躍欲試。他們關(guān)注到的問(wèn)題是——如何判斷距離胡牌還差幾張牌?研究結(jié)果整理為論文《來(lái)玩麻將啊!》(Let’splayMahjong!)
都是科研論文,這篇的畫(huà)風(fēng)就很可愛(ài)
這個(gè)問(wèn)題很實(shí)用了,理解了其中奧義,你也能擁有牌局的大局觀。來(lái)看看他們是怎么算的。
首先需要用數(shù)學(xué)語(yǔ)言定義每一種牌形。他們選擇了一對(duì)數(shù)字(c,n),c表示花色,0為條、1為萬(wàn),2為筒;n表示具體的數(shù)字。比如(0,3)就是三條,(1,5)就是五萬(wàn)。
(2,7)和(2,5)圖源:flicker
接下來(lái)設(shè)置一段數(shù)列V,即14個(gè)(c,n)的***,用來(lái)表示完整的牌面。這時(shí)你就可以用邏輯語(yǔ)言定義出胡牌(complete)的條件。
最后一步是設(shè)計(jì)一個(gè)變量,定量地表示牌面的好壞。研究者引入了“缺牌數(shù)”的定義,也就是距離運(yùn)算到胡牌狀態(tài),還差幾張牌。
接下來(lái)的運(yùn)算結(jié)果請(qǐng)收好,這是一份科學(xué)的打牌秘籍。
基礎(chǔ)版——清一色如果你已經(jīng)湊出了兩個(gè)“3連”(包括刻子和順子),且它們不連續(xù),那么缺牌數(shù)小于等于2;如果你的牌面是以下兩種情況之一,那么缺牌數(shù)為35個(gè)對(duì)子+一個(gè)杠;
5個(gè)對(duì)子+1個(gè)刻子+1張單牌
進(jìn)階版——多花色對(duì)于任意組合的一副牌,最大缺牌數(shù)為6。要置換6張牌才能胡的牌面就是最爛的牌;2.如果你的牌面是以下3種情況之一,那么缺牌數(shù)小于等于5
兩個(gè)不連續(xù)的“3連”(包括刻子和順子);
一個(gè)“3連”和一個(gè)“準(zhǔn)3連”(只需要碰一下或者吃一個(gè)就能湊出刻子或順子);
4個(gè)“準(zhǔn)3連”
面對(duì)具體的牌面時(shí),置換麻將牌的方案不止一種,此時(shí)需綜合考慮缺牌數(shù)和胡牌成本,以及方案的可行性。
舉個(gè)栗子,如果你的牌面是這樣的,那么你可以考慮3種搭配方案
先把牌碼上,看起來(lái)順眼一些。
第一種方案里,“準(zhǔn)3連”B1B3還差一張B2(二條),但是整副牌中已經(jīng)沒(méi)有多余的二條,因此這種方案無(wú)效。方案二和方案三都是可行的,但是方案三的缺牌數(shù)更小,所以更優(yōu)。
作為中國(guó)的經(jīng)典傳統(tǒng)游戲,麻將的玩家覆蓋率在整個(gè)游戲江湖遙遙領(lǐng)先。不同地區(qū)有不同的打法。幾分技巧、幾分運(yùn)氣,還有好幾分的樂(lè)趣。這種獨(dú)特的牌類(lèi)游戲也慢慢漂洋過(guò)海,傳入了包括歐美國(guó)家在內(nèi)的世界許多地方。還有研究證實(shí),麻將的益智作用有益于阿爾茨海默病患者。
美國(guó)的娃們?cè)谡n外活動(dòng)課上學(xué)習(xí)打麻將丨圖源:Wiki
當(dāng)然,***的科學(xué)家費(fèi)勁編寫(xiě)程序來(lái)還原麻將的游戲規(guī)則,初衷倒不是為各位玩家搞一套打牌指南,而是為了開(kāi)發(fā)人工智能。畢竟圍棋高手阿爾法狗和阿爾法零相繼橫空出世,麻將高手機(jī)器人也指日可待。
問(wèn):圖中有幾個(gè)人在打麻將?丨圖源:unsplash
各位麻將高手,你期待和機(jī)器人PK的那天嗎?
寫(xiě)完此文,考慮到實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),小編鄰座的小哥默默把家里的麻將牌拿到了公司。
參考資料
1.YuanCheng,Chi-KwongLi,andSharonH.Li.Mathematicalaspectofthecombinatorialgame“Mahjong”.ArXiv:1707.07345,2017.
2.SanjiangLi,XueqingYan.Let’sPlayMahjong!arXiv:1903.03294v1
本文經(jīng)授權(quán)轉(zhuǎn)載自微信公眾號(hào)“把科學(xué)帶回家”。無(wú)標(biāo)注圖片來(lái)源網(wǎng)絡(luò)