zoukankan      html  css  js  c++  java
  • 关于生日悖论问题的验证

    昨天在网上看到一个非常有意思的问题:

    数学老师和体育老师打赌,数据老师认为在他们有50个人的班级里有两个生日是同一天的同学的概率远超没有的概率,反之是体育老师的观点。

    第一次看到的时候我觉得这特数学老师才是教体育的吧,

    我万万没想到在这个po主 经过一番奇奇怪怪 我没有看懂的数学操作之后

    他告诉我 50个人的班级里 有两个生日相同的同学的概率是97%以上

    而且 他还告诉我 他是科学的 严谨的 正确的 我特么.......

    这里就引出了生日悖论

    百度百科解释如下

         生日悖论,指如果一个房间里有23个或23个以上的人,那么至少有两个人的生日相同的概率要大于50%。这就意味着在一个典型的标准小学班级(30人)中,存在两人生日相同的可能性更高。对于60或者更多的人,这种概率要大于99%。从引起逻辑矛盾的角度来说生日悖论并不是一种悖论,从这个数学事实与一般直觉相抵触的意义上,它才称得上是一个悖论。大多数人会认为,23人中有2人生日相同的概率应该远远小于50%。计算与此相关的概率被称为生日问题,在这个问题之后的数学理论已被用于设计著名的密码攻击方法:生日攻击

    可我还是不信 怎么办? 写段代码跑

    第一次 测试100次一年内20个随机日期 出现相同的概率 

     妈呀 第一次 概率居然达到了90%

     检查代码后发现没问题 再来一遍 这次 还是20个人 测试10000次

    这次没有那么夸张 可也有41.8%

     于是我测试了一下50个人的概率 还是一万次

    97.7%!!!!!!!!!!!

     

    随后又进行了几次测试 发现概率均在90%以上

     

     

    而且测试次数越多结果越是趋近于97% - 98%

    相信你和我一样 很震惊 不过我眉头一皱 就找到了问题的答案  嘿嘿嘿 下面是科普时间

    先计算房间里所有人的生日都不相同的概率,那么
    第一个人的生日是 365选365
    第二个人的生日是 365选364
    第三个人的生日是 365选363
    :
    :
    :
    第n个人的生日是 365选365-(n-1)
    所以所有人生日都不相同的概率是:
    那么,n个人中有至少两个人生日相同的概率就是:
    所以当n=23的时候,概率为0.507
    当n=100的时候,概率为0.999999692751072
    对于已经确定的个人,生日不同的概率会发生变化。下面用随机变量计算:
    令X[i,j]表示第i个人和第j个人生日不同的概率,则易知任意X[i,j]=364/365
    令事件A表示n个人的生日都不相同
    P(A)=
     
    解P(A)<1/2,由对数可得:n>=23
    相比之下,随机变量也同样的简单易懂
    ,且计算起来要方便得多

    嗯~ ~ 如果你还是不是明白   那我换种说法

    理解生日悖论的关键在于领会相同生日的搭配可以是相当多的。如在前面所提到的例子,23个人可以产生23 × 22/2 = 253种不同的搭配,而这每一种搭配都有成功相等的可能。从这样的角度看,在253种搭配中产生一对成功的配对也并不是那样的不可思议。
    换一个角度,如果你进入了一个有着22个人的房间,房间里的人中会和你有相同生日的概率便不是50%了,而是变得非常低。原因是这时候只能产生22种不同的搭配。生日问题实际上是在问任何23个人中会有两人生日相同的概率是多少。
     
    后来啊,生日悖论普遍的应用于检测哈希函数:N-位长度的哈希表可能发生碰撞测试次数不是2^N次而是只有2^(N/2)次。这一结论被应用到破解cryptographic hash function的生日攻击中。
    生日问题所隐含的理论已经在[Schnabel 1938]名字叫做capture-recapture的统计试验得到应用,来估计湖里鱼的数量
     
     
    ok  科普结束

  • 相关阅读:
    增强iOS应用程序性能的提示和技巧(25个)
    [iOS]用instancetype代替id作返回类型有什么好处?
    把cygwin加入右键菜单
    NSRange
    Centos7下安装MySQL
    (转)php 操作redis全部方法。
    unbuntu 安装php5.6
    unbuntu 安装nginx
    unbuntu 安装MySQL
    Ubuntu16.04下实现MySQL主从复制
  • 原文地址:https://www.cnblogs.com/zhangxiaoxia/p/10783980.html
Copyright © 2011-2022 走看看