zoukankan      html  css  js  c++  java
  • 斗地主的概率问题

    不少人都爱玩斗地主,牌好了就叫地主,不好就跟着当农民,有时候一手烂牌,总说运气不好,那么运气好有几成几率呢?今天我就来研究研究运气好坏是怎样的概率……

    首先,看看抓到两个王的情况,首先不翻开底牌时,你手里的牌有C{17,54}种情况,其中抓到两个王的情况有C{15,52}种情况,经计算,抓到两个王的概率应该是是C{15,52}/C{17,54}=52!/15!/37!/54!*17!*37!=136/1431≈9.5038%

    再看看抓到炸弹的概率(有可能也抓到王炸),分母依然是C{17,54}。再从54张牌里选指定的4个一样的,比如说我抓到4个2,先来看看抓到4个2的情况,不考虑也抓到其他炸弹,这样有C{13,50}种情况。那么抓到指定的2个牌(比如抓到4个2和4个A)是炸弹的情况(同样有可能抓到3个或是更多个炸弹)的组合数应该是C{9,46},同理抓到指定的3个牌是炸弹有C{5,42}种情况,抓到指定的4个牌是炸弹有C{1,38}种情况。根据容斥原理,有炸弹出现情况的组合数应该是C{1,13}C{13,50}-C{2,13}C{9,46}+C{3,13}C{5,42}-C{4,13}C{1,38},可算出其概率是: 

    (  C{1,13}C{13,50}-C{2,13}C{9,46}+C{3,13}C{5,42}-C{4,13}C{1,38}  )  /  C{17,54}

    = 9164971927*38*13/(9*23*35*38*39*41*43*47*53)

    =  4527496131938/47153358767970

    ≈ 9.6016%

    如果想求非王炸的概率,就要把既含王炸又有普通炸的情况减去,同理,先看看有王炸又有1个指定牌的普通炸的情况,组合数为C{11,48},有王炸又有2个指定牌的普通炸的情况数为C{7,44},有王炸又有3个指定牌的普通炸的情况组合数为C{3,40},不用管有4个炸又有王炸的情况,因为那种情况是不可能的,那样手里就18张牌了。同理,由容斥原理知,既有王炸又有普通炸的情况数为C{1,13}C{11,48}-C{2,13}C{7,44}+C{3,13}C{3,40}=290751426160

    以上是既有王炸有含有普通炸的情况,(当然也包含有两个或以上的普通炸弹的情况)从含有普通炸弹不论王炸的情况中刨除既有王炸又有普通炸的情况就是没有王炸只有普通炸的情况数。所以抓到炸不含王炸的概率为:

    ( 4527496131938-290751426160 ) /47153358767970

    =4236744705778 / 47153358767970

    ≈ 8.9850%

    可见,抓到王炸的概率比只抓到普通炸弹而没有王炸的概率略微高一些。但比抓到普通炸弹不论有无王炸的概率略微低一些。当然抓到王炸的情况是只考虑抓到王炸,不论是否抓到普通炸弹的情况。不知写明白没

    炸弹的情况大概就是这样,再看看顺子的情况,对于顺子,跟炸弹差不多,只不过考虑相反的方向,先考虑抓不到指定的某个牌的情况数。比如抓不到6的情况数为C{17,50},可得知,指定1张牌抓不到共有C{1,12}个集合;同样地,我们也能找到同时有2张指定的牌抓不到的情况数,如,抓不到6和7的情况数为C{17,46},当然抓不到6和抓不到8的情况数也为C{17,46}……,一共有C{2,12}种集合;还有,比如指定6、7、8都抓不到,那么情况数为C{17,42},而指定3张牌抓不到一共有C{3,12}种集合;同理若指定6、7、8、9都抓不到,其情况数是C{17,38},当然4张牌抓不到的情况一共有C{4,12}个集合;指定5张都没有被抓到的情况数为C{17,34},所以指定5种牌抓不到一共有C{5,12}个集合;同理6种牌都没有被抓到的情况数为C{17,30},而指定6种牌抓不到一共有C{6,12}种集合;同理,若指定7种牌都没有被抓到有C{17,26}种情况,而指定7种牌抓不到一共有C{7,12}种集合;8张指定牌没有被抓到有C{17,22}种情况,指定8张牌抓不到一共有C{8,12}种集合;最后,若有9张牌都没抓到就有C{17,18}种情况,同样,指定9张牌抓不到一共有C{9,12}种集合;由于鸽笼原理,不可能 有10张牌都没有被抓到的情况。同样,根据容斥原理,可以得出指定地12张牌中,没有抓到3,或没有抓到4,或没有抓到5,或没有抓到6,……或没有抓到A的情况数为:

    C{1,12}C{17,50}-C{2,12}C{17,46}+C{3,12}C{17,42}-C{4,12}C{17,38}+

    C{5,12}C{17,34}-C{6,12}C{17,30}+C{7,12}C{17,26}-C{8,12}C{17,22}+C{9,12}C{17,18}

    以上是没有抓到3,或没有抓到4,……,或没有抓到A的情况,也就是3~A这12种牌中,有牌没被抓到的情况,用总数减去这些情况就是3~A中所有种类的牌都被抓到的情况。用C{17,54}减去以上就是所得情况总数,即945700208640 

    那么斗地主抓到3~A的概率应该是:

    945700208640 /  47153358767970=10507780096 / 523926208533 ≈ 2.0056%

    原来3~A的顺子出现的概率也不小啊,不过要比王炸或者抓到普通炸弹的概率要小很多。

    还有种方法,就是从剩下的情况中寻找,因为抓到3~A后,只剩下5张牌了,把这5张牌的情况都研究明白就能求出来了,都研究明白之后用加法原理,把所有情况数都加一起。由简单到复杂,剩下的5张牌中只有2或王的情况最为简单,那么能算出种条件下有的情况数是:

    4^12 C{5,6}=100663296; 这里C{5,6}指的是2或王牌的张数是6,其中有5张被抓到的情况总数,而4^12是通过乘法原理计算3~A这12张牌中一共的情况数,因为每种牌都有4种花色,所以底数是4。

    再考虑剩下的5张牌中有4张是2或王,那么其情况数是:

    4^11C{4,6}C{1,12}C{2,4}=45298484320;这里 C{4,6}指的是2或王出现的张数是4,而剩下的1张牌就必然是3~A中的某一张,所以有C{1,12}种情况,而某个牌被抓到2张有C{2,4}种情况,因为某张牌有4种花色。

    下面是2和王出现的张数是3的情况,算得情况数应该是:

    C{3,6}(4^11C{1,12}C{3,4}+4^10C{2,12}C{2,4}C{2,4})=53854863360;这里C{3,6}同理表示2或王被抓到3张的情况数,而一旦抓到3张2或王,就意味着有2张牌出现在3~A中。这种情况分类计算,有可能3~A中有1种牌被抓到3张,同理这种情况有C{1,12}C{3,4}4^11个,C{1,12}表示某牌被抓到3张的情况总数,C{3,4}表示某牌被抓到3张后,其3张按花色排列的组合数,因为有4种花色。第二类就是3~A中,有2种牌被抓到2张,同理,这种情况有C{2,12}C{2,4}C{2,4}4^10个,C{2,12}表示某2种牌被抓到2张的情况总数,C{2,4}表示某牌被抓到2张后,按花色排列的组合数。两类加一起就是2张牌出现在3~A中的情况总数。

    还有,就是2和王出现的张数是2的情况,比较复杂,不过还是能算出,其结果为:

    C{2,6}(4^9C{3,12}C{2,4}^3+4^10A{2,12}C{3,4}C{2,4}+4^11C{1,12}C{4,4})=237439549440;这里 C{2,6}同样表示2或王被抓到的2张的情况数,一旦2或王被抓到2张,就有3张牌出现在3~A中,也是分类计数,有3种情况,那三张牌是1+1+1 的情况,1+2的情况,和3+0的情况,1+1+1是指3~A中各有1张,1+2的情况是指3~A中,某个牌被抓到2张同时某个牌抓到1张的情况,而3+0表示3~A中,某个牌出现4张的情况。

    以下还有2和王只有1张牌被抓到的情况,而4张牌更加复杂,其结果为:

    C{1,6}(4^8C{4,12}C{2,4}^4+4^9C{2,12}C{1,10}C{2,4}^2C{3,4} + 4^10A{2,12}C{2,4}C{4,4} + 4^10C{2,12}C{3,4}C{3,4})=413367533568;这种情况跟以上的求法类似,要明确4张牌出现在3~A的种类数就行了,分类有如下,1+1+1+1;1+1+2;2+2;1+3,在3~A中,对于1+3的情况里,某张牌出现4张某张牌出现2张的情况,与某张牌出现2张某张牌出现4张是属于两种情况的,比如,抓到4个3和2个4与抓到4个4与2个3的情况是不同的组合,所以在这里用A,没有用C,只有某几种牌被抓到张数相同时才用C,因为那两种情况是一样的。

    最后一种情况,就是2和王都没有被抓到的情况,最为复杂,结果如下:

    C{0,6}(4^7C{5,12}C{2,4}^5+4^8C{3,12}C{1,9}C{2,4}^3C{3,4}+4^9C{2,12}C{1,10}C{3,4}^2C{2,4}+4^9C{2,12}C{1,10}C{2,4}^2C{4,4}+4^10A{2,12}C{4,4}C{3,4})=236407750656;这种情况下一定要注意即有顺序性又有无序性的组合。最前面的 C{0,6}指没有2和王出现的组合数,这种情况下剩余的5张牌都来自于3~A,同样分类计算,3~A有12张牌,把5张剩下的分布在这些牌中,有1+1+1+1+1;2+1+1+1;3+1+1;2+2+1;3+2,这几种组合,下面分类论述:

    1+1+1+1+1;指3~A中有5种牌各多抓1张,就是有5种牌抓到2张的情况,还剩下的7种牌中按花色排列为4^7,再确定哪5种牌被抓到2张,即C{5,12},最后花色4选2的情况有C{2,4}种组合,5张这样的牌就是C{2,4}^5

    2+1+1+1;指3~A中有3种牌多抓1张,有1种牌多抓2张,剩下的8种牌按花色排列为4^8,再确定哪4种牌被多抓,由于多抓的牌数中有3种牌多抓的张数是相等的,所以先用C{3,12}求出多抓相等牌数的组合情况,再计算排除3张多抓的后剩的多抓2张的组合情况数,即C{1,9}。最后确定被抓多的4张牌的排列数,即C{2,4}^3C{3,4}。

    2+2+1;指3~A中,有2种牌多抓2张,1种牌多抓1张,还剩下的9种牌按花色排列为4^9,再确定是哪3种牌被多抓,由于每种多抓的张数有两种牌是相等的,所以先用C{2,12}求出多抓相等张数牌的组合数,再根据情况在剩下的9张中选择一张,求出组合数,即C{1,10}。最后多抓2张的牌种按花色组合是C{3,4}^2,而多抓1张的排种按花色组合就是C{2,4}。

    1+1+3;这种情况与2+2+1的形式差不多,就是有2种牌多抓1张,1种牌多抓3张,同样不是多抓的牌数都相等,根据2+2+1的形式得出这种情况的总数。

    2+3;这种情况比较简单,就是3~A中有一种牌多抓2张,有一种牌多抓3张,剩下的10种牌按花色排列为4^10,再确定哪2种牌被多抓,即A{2,12},因为这两种牌多抓的情况是不相同的,所以是用A。多抓3张按花色排列为C{4,4},多抓2张的按花色排列为C{3,4}。

    最后计算3~A被抓到的概率,即

    (100663296+4529848320+53854863360+237439549440+413367533568+236407750656) / C{17,54}

    =945700208640 /  47153358767970

    =10507780096 / 523926208533

    ≈ 2.0056%

    可见,这种算法与容斥原理方法得出的结果完全相同,虽然计算出的数字非常巨大,但正确的答案只有一个……

    开始对斗地主的概率计算结果也遇到了许多坎坷,尤其是两种算法的结果,经过缜密的思考,多方面的论证,精密的计算,最后都找到了问题的所在。比如3~A顺子的情况总数945700208640,两种算法的结果相差1都是问题,通过计算机计算,检查抄写错误,分析列式等,一点点改掉错误。终于得出了非常令人诧异而且如此巨大精确的数据945700208640!数之艰辛,数之准确,是研究数学的必须精神,只有一丝不苟才能找到答案、找到真理、找到奇迹……

  • 相关阅读:
    HDU 4034 Graph:反向floyd
    POJ 2728 Desert King:最优比率生成树
    求树的最大独立集,最小点覆盖,最小支配集 贪心and树形dp
    AtCoder ARC061E Snuke's Subway Trip 最短路
    hdu4126_hdu4756_求最小生成树的最佳替换边_Kruskal and Prim
    洛谷 P2633 Count on a tree
    POJ3241 最小曼哈顿距离生成树
    HDU6315 Naive Operations 线段树
    ACM-ICPC 2018 沈阳赛区网络预赛-B,F,G
    LCA
  • 原文地址:https://www.cnblogs.com/hdk1993/p/4902749.html
Copyright © 2011-2022 走看看