2018年3月13日 星期二

夜市麻將賓果中獎率高嗎?

每次去夜市,都會看到「麻將賓果」這樣遊戲。這個遊戲規則通常是100元可以玩6局,每局抽15張麻將牌,在6*6的賓果上對獎,連成一線即中獎;當沒有連成一線,但有湊滿5張牌時即「聽牌」,可以再抽3張。如果中獎,可以得到娃娃一隻,或是其他獎品。

夜市麻將(圖片來源 CC授權


那麼這個遊戲到底中獎律高不高呢?這當然可以用機率算,在不考慮聽牌規則的機率算法如下:
那有聽牌規則下的中獎機率呢?好複雜我也不想多想了,這種問題,就交給電腦處理吧!電腦不就是用來處理複雜、龐大的計算嗎。我用R寫了一個麻將賓果模擬程序,請它跑了100萬次,結果如下圖。

在有聽牌機制的情況下,連成一線的機率為 10.493%,連成二線的機率為 0.288%,連成三線的機率為 0.0015%。所以100元玩6局的得獎率為1-(1-10.7825)^6,大概是近五成。你覺得這樣的機率高不高呢?

另外,如果沒有聽牌機制,抽15張就連成一條線的機率大約只有3.56%,很低呢!


不過既然都做模擬了,我們就來看一下各種條件下,獲勝的機率是多少吧。黑色的線代表花100元獲獎的機率,紅色代表單一局獲勝的機率。

其實從上面的圖可以看出,夜市麻將「100元玩6局,每局抽15張牌,聽牌再抽3張」讓玩家獲勝的機率拿捏的剛剛好,是很有數學根據的!


這邊也釋出我寫的模擬程式以及code,如果你有裝R,可以直接點開 夜市麻將模擬器.Rdata,就會載入function了。

output<- mahjong(nmahjong = 15, draw = 3, games = 6, simula = 100000)

nmahjong是每局抽的牌數,draw是聽牌再抽的數量,games是100元玩的局數,simula是模擬次數。上面的數字都是可以隨意更改的,也可以直接mahjong()就會按照預設值跑出來。R的計算速度其實很慢,不建議模擬超過百萬次。

沒有留言:

張貼留言