zoukankan      html  css  js  c++  java
  • 面试过程中有趣的概率问题(坐飞机、扑克牌)

    扑克牌

    54张扑克,平均分给三人,大小王在一个人手里的概率

    这个可以直接组合数计算,我们把这两张牌拿出来,就是16,18,18

    16的那个人就相当于去52张牌里拿十二张,因为两个人都是18,所以要去重

    可以求得分子为C(52,16)*C(36,18)*C(18,18)*3

    同理求的分母为C(54,18)*C(36,18)*C(18,18)

    然后根据组合数公式,也就是18*17*3/(54*53)=17/53

    #include<bits/stdc++.h>
    using namespace std;
    const int MD=1e9+7,N=2e6+5;
    int f[N],v[N];
    void Init()
    {
        v[0]=v[1]=f[0]=f[1]=1;
        for(int i=2; i<N; i++) f[i]=1LL*f[i-1]*i%MD,v[i]=1LL*v[MD%i]*(MD-MD/i)%MD;
        for(int i=2; i<N; i++) v[i]=1LL*v[i-1]*v[i]%MD;
    }
    int C(int n,int m)
    {
        if(m<0||m>n) return 0;
        return 1LL*f[n]*v[m]%MD*v[n-m]%MD;
    }
    int main()
    {
        Init();
        int n,m;
        while (cin>>n>>m)cout<<C(n,m)<<"
    ";
        return 0;
    }
    线性求逆元求组合数模版

    当然有些人就不想那样写组合数,分子写成C(52,18)*C(34,18)*C(16,16)*3也是可以的,只是通分没那么好看,数值都是一样的

    还是以某人抽到大王为基准,而且还得抽到小王。大王可以出现在3×18的任意位置,小王也必须出现在相同的人手中,但不能出现在大王出现的那一轮(共17轮)。
    即3×18×17 
    总共有3×18×53种情况,即小王不与大王相同位置。这是兔小弟的做法,我觉得也很巧妙哦

    扩展问题变成了,一个人拿20张,另两个人拿17张。hhhh斗地主的真实情况

    地主当然概率要高些,但是具体是多少呢,我们可以看一下

    分母比较简单,先写出分母C(54,20)*C(34,17)*C(17,17)*3

    这三个人可能的牌是18 17 17和20 17 15

    写出分子就是C(52,18)*C(34,17)*C(17,17)*3+C(52,20)*(32,15)*C(17,17)*6

    约分可以算出来是0.434661,上面那个值是0.320755

    第一个有同学觉得一眼看过去就是1/3,但是实际上去错误的

    比如两副牌,有些人就觉得是1/2,其实是一个比1/2略小的数,16/53。

    为什么会有这种情况呢,因为进行了占位,你这张牌有了就占去了那个位置,就不能直接乘上概率了

    我们可以考虑6张牌分给两个人,这样算出来是2/5,其实公式就是(n/m-1)/(n-1)(n代表牌数,m代表分的堆数)

    四个人,除去两张大小王剩下52张扑克牌。问红桃A和黑桃A同时被一个人拿到的概率,这个你很快算出来12/51了,隔壁还在自闭呢

    但是你只要不平分或者不能平分就会出现烦人的约分问题,平分之前这个数肯定小于1/m,不平分之后肯定大于1/m,这算是神奇的不等式吧

    100人坐飞机,第一个乘客在座位中随便选一个坐下,第100人正确坐到自己坐位的概率是?

    他们分别拿到了从1号到100号的座位,这些乘客会按号码顺序登机并应当对号入座,如果他们发现对应号座位被别人坐了,就会在剩下空的座位随便挑一个坐.现在假设1号乘客疯了(其他人没疯),他会在100个座位中随便选一个座位坐下,问:第100人正确坐到自己坐位的概率是多少?(也可推广到n名乘客n个座位的情况)
     
    其实是一个递归问题
    1名乘客1个位置 100%
    2名乘客2个位置 你的状态和第一个人有关,50%
    3名乘客3个位置 第一个坐对了,那就是回到了状态2
             第一个人占到你的位置
             第一个人坐到另一个人的位置,还是状态2  这个概率是多少呢,就是(1/6+1/6)*3,还是50%
    4一直往复下去还是如此
    看起来你只和第一个人有关,第一个人第 [公式] 个人登机时,他的座位被占的概率是 [公式] 
     
     
    不均匀的硬币怎么让两个人等概率呢,可以扔两次,相同了就再来,先反或先正为胜利。能粘的话粘起来也是可以的
     
     
     
  • 相关阅读:
    卡特兰数
    hdu 1023 Train Problem II
    hdu 1022 Train Problem
    hdu 1021 Fibonacci Again 找规律
    java大数模板
    gcd
    object dection资源
    Rich feature hierarchies for accurate object detection and semantic segmentation(RCNN)
    softmax sigmoid
    凸优化
  • 原文地址:https://www.cnblogs.com/BobHuang/p/11303735.html
Copyright © 2011-2022 走看看