1. 程式人生 > >一個由鬥地主引發的血案!~~

一個由鬥地主引發的血案!~~

**引子: 今早起來開開心心逛逛網頁,看到一個在騰訊面試AI智慧工程師的妹子分享的面試題,
鵝廠面試官問:”鬥地主是我們常玩的一種遊戲,請問一下王炸的概率?”, 面試妹子:”emmm…”,心中估計一萬個草泥馬飛過中~~不過還是趕緊拿著筆和小本子去計算了.**

王炸!~~,看到這個小故事我也試著拿筆去算了算, (唉,尼瑪,去試一下自己的智商下限!)
然後得出如下思路:地主20,農民17,一共54張牌.
那我直接用:
20/54 =地主拿一張王牌的概率
19/53=地主在有一張王后再拿到王的概率
然後兩個概率相乘:20/54*19/53 不就得出了王炸的概率嘛? ==13.3%


好,在自己跛腳的計算後,懷著揣測的心情去百度了一下答案,各種高階演算法,但最後結果都是約13.3%, 好的,恭喜!回答正確~

在確定王炸的結果後,雖然很簡單,但還是很興奮的,那我也要趕緊去算一下農民炸的概率,兩王分家的概率各種balaba.,可沒想到,這一激動,就出了事!~~
我先是套用上面的公式算了民炸的概率: 17/54*16/53*2==19%(因為2民,農民需乘2)

上面得出了王炸的情況,下面我們來看看兩王分家,這時有兩種:1.兩民各一王 2.地主農民各一王
再算算–>

兩民各拿一王(概率簡寫為P): 17/54(一民拿王P)*17/53(另一民拿王P)*2=19%

地主與民各一王: 20/54*17/53*(這裡得出地主拿王,再乘民拿王) *2 =23.8% (因為這裡有兩民,所以乘二!)

好!這下子我們是不是算出了所有情況!~~
1.王炸(13.3%) / 2.民炸(19%) /3.兩民各王(20.2%) /4.地主民各王(23.8%)

這裡概率事件確實就這4種,那我們現在來將上面算出來的所有概率加一下,
13.3%+19%+20.2%+23.8%=76.3% (!汗~~76.3..這尼瑪 !! ~~)

雖然概率學不好,但就算根據大自然的規律來看也應該是1阿,這裡怎麼缺了一塊呢, 你給我吃了嘛??!!趕緊吐出來,~~~
那細心的同學這時候有沒有發現什麼呢?

是哪個地方錯了喔! 76.3..!這個數字好像和哪個地方有點蹊蹺呀~猜出來了嘛?

那下面我們來推斷一下,首先王炸(13.3%)和民炸(19%)肯定是正確的,比較符合邏輯. 那有問題的大概就是兩民各一王(20.2%)和地主民各王(23.8%)裡面了.

哪裡計算錯了我們先不急,我們先確定出一些正確的事件概率,
這裡我是這樣思考的,既然盲算(上面的區域性演算法)不行,那我就從全域性入手.先得出那些可靠性較高的資料:

我們在這裡把事件分三種: 1.王全在民那 2.王全在地主那 3.王分佈在地主和民各一個

全民:34/54*33/53=39.2%
王炸:13.3%

這時還剩下最後一種情況:3.地主民各一張王
100%-39.2%-13.3%=47.5% ?? 得出這個概率有沒有大吃一驚呢~~
那這裡得出的概率和上面得出的23.8% 是完全不一樣的,
這裡很明顯第二種計算過程更可靠一些,23.8%,47.5%,有沒有看出什麼呢? 對!正好約為2倍!

那我們是不是能得出一個推斷: 第一次計算時得出的兩民各一王(20.2%)和地主民各王(23.8%) ,是計算地主與民分王概率時錯了,少乘了個2!而二民各一王的概率20.2%是正確的!

本著探索錯誤本源的精神:我們來回顧一下之前的計算過程:
兩民各拿一王:17/54(一民拿王P)*17/53(另一民拿王P)*2
地主與民各一王: 20/54*17/53*(這裡得出地主拿王,再乘民拿王) *2 =23.8%

為什麼前面乘二沒問題,而下面乘二就錯啦呢?
先用地主拿王概率20/54,再乘17/53(農民在地主拿到王后的P),這裡有兩個民,所以我們
理所當然的乘二! 符合邏輯啊,但其實我們這裡陷入了一個思維誤區..

我們分析一下計算兩民時,乘2是因為雙方都能互動,所以各來一次. 而在地主面對
兩民時,乘二也就各自互動了一次, 正確的是 應該也像上面雙方各互動一次,所以我們
的整體結果應該繼續乘個2. (禮來我往!)

好的!到這裡我們得出正確答案了,過程確實很簡單! 因為我們能知道所有情況.
但試想一下,假如我們在一個完全未知的空間中,你不知道一共有多少種角色,
那裡除了農民還有什麼老師,富豪.告訴你農民和地主的情況,讓你去算上面的概率.
(即不知道全域性條件的情況下)然後~~我根據盲目的演算法給出了一個錯誤答案!~(小心到時候被關小黑屋喔~嘿嘿)

唉,想一想是不是很恐怖!! 所以最後我們牢記一條規律:

總結:

1.在事件中, 兩者關係間的相互作用不能與三者之前的相互作用混為一談! 不要想筆者一樣陷入思維誤區,三者間 不是乘2,而是乘4.
2.那通過這個我們還能得到什麼呢?我們以後就可以通過大資料打牌都地主了啦^_^balabala!…
(敲黑板,再記一遍)1.王炸(13.3%) / 2.民炸(9.5%*2) /3.兩民各王(20.2%) /4.地主民各王(47.5%)

所以你以後再也不用傷心你沒王炸了! 這概率,~太低了,那些每把都能有王炸的,趕緊去買彩票吧哈哈!