2015年3月18日 星期三

訓練數學感 54 ─ 撲克牌機率 (Poker)

http://4rdp.blogspot.com/2015/03/54-poker.html

圖片引自 http://wall.alphacoders.com/
從一副撲克牌中,任取五張,求下列各手牌的機率:

一、同花大順 (Royal Straight Flush),同花色的 A, K, Q, J, 10
二、同花順 (Straight Flush),五張同花色的連續牌
三、四條 (Four of a kind),四張同點的牌
四、葫蘆 (Full house),兩張同點,其他三張為另一個同點
五、同花 (Flush),五張不按順序但相同花色的撲克牌組成
六、順子 (Straight),五張順序撲克牌組成,10-J-Q-K-A為最大的順,A-2-3-4-5為最小的順
七、三條 (Three of a kind),由三張相同點數和兩張不同點數的撲克牌組成
八、兩對 (Two pair),兩對數字相同但兩兩不同的撲克和隨意的一張牌組成,共五張牌
九、一對 (One pair),由兩張相同點數的撲克牌和另三張無法組成牌型組成



這讓我想起以前金撲克的電動玩具機台,後來自己也用 CASIO FX-700P 寫一個電玩程式。

12 則留言:

  1. 時間不夠。只先回答三個:
    1. 同花大順機率: C(4,1)/C(52,5) 四花色,各有一個大順。
    2. 同花順: 1,2,3,4,5; 2,3,4,5,6;...9,10,J,Q,K 共有9個,4花色;機率=9*4/C(52,5)
    3. 四條(鐵支): 13*12*4/C(52,5) 13組4張一樣,搭配12種剩餘的點數,共4種花色

    回覆刪除
    回覆
    1. 這三題正解,這麼早就回文!

      刪除
    2. 其實這題,可以衍伸出另外一題,找出個演算法去執行 "洗牌" 的動作?

      刪除
    3. 嗯,好主意,而且要模仿人類洗牌的方式。

      刪除
  2. Full house: C(13,1)*(C4,3)*C(12,1)*C(4,2)
    同花: C(4,1)*C(13,5)-40
    順: 10*4*4*4*4*4 -40
    三條: C(13,1)*C(12,2)*C(4,3)*C(4,1)*C(4,1)
    兩對: C(4,2)*C(4,2)*C(4,1)*C(13,2)*C(11,1)
    一對: C(13,1)*C(12,3)*C(4,2)*C(4,1)*C(4,1)*C(4,1)
    上面的所有計算都要再除 C(52,5) 就是機率。

    回覆刪除
  3. 海珊: 只拿AK你也敢梭哈?
    賭俠: 我師父說AK不賭是棒槌。不但可以買順買同花,隨便湊個對子都比你大。這樣還不賭,就別出來混了!
    請問手拿AK,到底要不要賭?

    回覆刪除
  4. 是要賭。因為大約 50.12% 拿到無任何牌面。而且 AK 是無任何牌面裡面最大的。
    後面買順買同花是騙人的。因為"湊"對子 才是真的。
    如果對方是對子,對方要不要賭? 當然要。理由就不解釋了。

    回覆刪除
  5. 52張任選5張共有 2598960 種組合,
    一、同花大順 (Royal Straight Flush),4 種,機率 0.0001539077%
    二、同花順 (Straight Flush),36 種,機率 0.0013851693%
    三、四條 (Four of a kind),624 種,機率 0.024%
    四、葫蘆 (Full house),3744 種,機率 0.144%
    五、同花 (Flush),5108 種,機率 0.19654%
    六、順子 (Straight),10200 種,機率 0.392%
    七、三條 (Three of a kind),54912 種,機率 2.1128%
    八、兩對 (Two pair),123552 種,機率 4.7539%
    九、一對 (One pair),1098240 種,機率 42.2569%
    無任何牌組,機率 50.12%

    回覆刪除
  6. 洗牌的演算法:
    http://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle

    回覆刪除
    回覆
    1. 謝謝補充,看來本週三加入洗牌演算法,讓大家練習練習。

      刪除