概率问题,30个人当中,所有月份都至少有一人生日的概率是多少(注意不是问两人生日相同的问题).

3个回答

  • 如果是考试出的概率题,那你可以不用算了,这种属于人脑不能在短时间内计算的概率问题,需要分多种情况讨论.

    如果你真的想知道结果,还是编个程序方便:把所有情况列举出来,统计下符合要求的情况.

    如果你真的想从数学角度比较方便的计算,我提供个方法,计算起来也很烦,但至少用Excel就可以较快实现.

    定义二维数列:a(m,n)表示m个人分到n个月有几种分法

    这些分法是由2种分法构成的:

    m-1个人分到n个月,剩下那个人随意分到哪个月都行;

    m-1个人分到其中的n-1个月,剩下那个分到剩下的那个月.

    因此a(m,n)=a(m-1,n)*n+a(m-1,n-1)*n

    你在计算的时候只要把初值定义好就行.

    计算出a(30,12)之后再除以12^30就行.

    用到的是递推的思想,就是每个步骤都是由之前的状态计算出来的,和组合的公式C(m,n)=C(m-1,n)+C(m-1,n-1)这条性质的本质道理类似.

    btw:我很好奇,你模拟怎么模拟?都用到计算机了还只算出个大概的数!每个人生日的月份让计算机随机取?无语了.

    补充:我忽然想到了,反过来算,有月份没人生日的概率是多少,然后用容斥原理可能会好些.

    某月没人生日的概率(11/12)^30,一共12个月,乘以12;但某俩月没人生日的多算了,扣掉;某三个月没人生日的又少算了,加上.以此类推.

    1-(11/12)^30*C(12,1)+(10/12)^30*C(12,2)-(9/12)^30*C(12,3)……-(1/12)^30*C(12,11)得到的数值大约是0.359145.

    其实,后面的数越来越小,如果只需要精确到3位有效数字的话,只需要计算前5项就行,后面的可以忽略不计,得到0.359.