关于生日悖论问题的验证

article/2025/8/27 23:55:04

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

数学老师和体育老师打赌,数据老师认为在他们有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  科普结束

 

转载于:https://www.cnblogs.com/zhangxiaoxia/p/10783980.html


http://chatgpt.dhexx.cn/article/pyuUNjiS.shtml

相关文章

python生日悖论分析_生日悖论

python生日悖论分析 If you have a group of people in a room, how many do you need to for it to be more likely than not, that two or more will have the same birthday? 如果您在一个房间里有一群人&#xff0c;那么您需要多少个才能使两个或两个以上的人有相同的生日…

Birthday Paradox(生日悖论)(概率)

Birthday Paradox&#xff08;生日悖论&#xff09;&#xff08;概率&#xff09; judge&#xff1a;LightOJ - 1104 vjudge&#xff1a;vjudge Time limit&#xff1a;2000 ms Memory limit&#xff1a;32768 kB OS&#xff1a;Linux Source&#xff1a;Problem Setter: Jane…

用python整个活(3)——生日悖论:birthday paradox

&#x1f3c6;一、前言 别问我为啥题目是英文&#xff0c;因为…高大上&#xff08;bushi。 刷视频的时候偶然刷到了一个关于生日悖论的&#xff0c;当场就觉得不可思议&#xff0c;直到上网查了查…… 诶&#xff0c;怎么是真的&#xff1f; 这玩意儿居然还被设置到了密码…

【算法导论】生日悖论

生日悖论问题&#xff1a; 不考虑出生年份&#xff0c;问&#xff1a;一个房间中至少多少人&#xff0c;才能使其中两个人生日相同的概率达到50%? 解&#xff1a; 假设一年有 n 天&#xff0c;屋子中有 k 人&#xff0c;用整数 1, 2, …, k 对这些人进行编号。假定每个人的生日…

反直觉的「生日悖论」问题

点击蓝色“五分钟学算法”关注我哟 加个“星标”&#xff0c;一起学算法 作者 | labuladong 来源 | labuladong 生日悖论是由这样一个问题引出的&#xff1a;一个屋子里需要有多少人&#xff0c;才能使得存在至少两个人生日是同一天的概率达到 50%&#xff1f; 给你 5 秒钟随便…

浏览器不能展开全部内容/界面(展开更多点击无效果)

win10浏览器不能展开全部界面 1、按下“WinR”组合键&#xff0c;在框中输入“inetcpl.cpl”&#xff0c;点击确定打开“internet 选项”; 2、点击“高级”选卡&#xff0c;点击底部的“重置”按钮; 3、在“重置 Internet Explorer 设置”界面将“删除个人设置”选项勾选&…

CSDN文章自动展开全文无需登录插件(仅限Chrome)!

为什么80%的码农都做不了架构师&#xff1f;>>> 众所周知csdn里所有blog都记录了程序员们多年的技术积累&#xff0c;他们不吝啬技术&#xff0c;免费分享经验&#xff0c;随着资料的丰富&#xff0c;那些踩过的坑&#xff0c;报过的错&#xff0c;全被前人当成树种…

VSCode 代码块/全文 折叠/展开 快捷键

需求 && 操作 常用的两类场景(注意要操作的范围)&#xff1a; 要操作光标所在文件中的所有代码块&#xff1a; 折叠所有 CtrlK0展开所有 CtrlKJ 仅仅操作光标所处代码块内的代码&#xff1a; 折叠 CtrlShift[展开 CtrlShift] 更多操作 如果你有更多需求的话&#…

列表页面的展开以及收起

列表页面的展开以及收起 需求想法关键代码结尾 需求 由于公司新需求 &#xff0c;写一个列表页 &#xff0c;不上拉加载 &#xff0c;点击加载更多去加载 还会有收起按钮 。大概效果如下图所示&#xff1a; 想法 1&#xff0c;一开始想的是直接对数组进行切割 。然后每次点…

CSDN自动展开全文的插件

程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 1 分钟。 这个插件的名字叫&#xff1a;CsdnAutomaticallyOpen&#xff0c;今天刚撸的&#xff0c;下午有点时间再逛CSDN&#xff0c;每篇都要点击阅读全文&#xff0c;尤其是有的还要关注&#xff0c;受…

iOS使用YYLabel 点击展开和收起全文

看图说话比较清晰&#xff0c;点击红色标记的区域&#xff0c;会展开全文。 相关知识点 YYLabel&#xff0c;truncationTokenNSAttributedString&#xff0c;YYText&#xff0c;YYTextHighlight 我们来看一下YYLabel的属性truncationToken&#xff0c;是一个富文本&#xff0…

java爬取新浪微博带有“展开全文”的完整微博文本

获取新浪微博“展开全文”的完整文本 在个人主页的响应中&#xff0c;这篇微博的表示形式是这样的&#xff1a; <div class\"WB_text W_f14\" node-type\"feed_list_content\" nick-name\"Vista看天下\">\n 【一堂课…

uni-app,一段文字实现展开、收起全文点点点

效果&#xff1a; 思路&#xff1a; 1.根据文本显示的布局中&#xff0c;每行大致能显示的文字个数。&#xff08;实例是大致每行26个文字&#xff09; 2.首先加载页面时&#xff0c;根据文字总长度判断是否超出自定义行数&#xff0c;来处理相应的数据&#xff0c;多余自定义…

CSDN阅读全文自动展开插件,安排上!

TJ平时经常利用一些碎片时间逛逛CSDN&#xff0c;由于是碎片时间&#xff0c;往往都是看到哪是哪&#xff0c;所以也没有登录&#xff0c;于是会碰到一个情况&#xff0c;就是看到一篇文章觉得不错&#xff0c;刚看了两句就让点击展开全文&#xff0c;点击之后还要求登录才行&a…

uni-app中,文字超出隐藏并显示省略号(实现展开、收起全文)

一、uni-app中&#xff0c;固定宽高&#xff0c;文字超出部分&#xff0c;隐藏并显示省略号。 .topic_cont_text{padding: 30upx;colof: #999;background: #E1FFFF;max-height: 130upx;overflow: hidden;word-break: break-all; /* break-all(允许在单词内换行。) */text-ov…

iOS文本展开收起,使用YYKit展开全文和收起全文,支持图文混排

使用YYKit展开全文和收起全文&#xff0c;支持图文混排 使用简单 1.依赖库&#xff1a; 该工具是基于YYKit封装的工具类&#xff0c; 使用前先用cocoapods导入依赖库&#xff1a;pod ‘YYKit’ 2.使用方法 导入头文件 #import “YYLabel_gcz.h” 初始化和赋值内容 YYLabel…

前端页面 div+css内容太长,实现点击展开余下全文(修改版)

<!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>文章高度展开</title> <style> .content{padding:10px 12px 48px;font-size:18px;color:#2b2b2b;line-height:1.7em;height:300px; /*初…

[javascript] 实现展开全文和收起全文效果

在展示大量文本的时候,很多网站会在页面上出现一个展开全文的文字按钮 , 点击这个按钮才会展开全部内容 . 使用jquery比较容易实现 , 最开始我想直接根据vuejs的语法来实现效果 , 结果失败 , 还是jq做起来简单 思路是 , 获取当前文本的div高度 ,超过一定高度就增加一个class值 …

uni-app,文本实现展开、收起全文

效果: 思路&#xff1a; 1.根据文本显示的布局中&#xff0c;每行大致能显示的文字个数。&#xff08;实例是大致每行26个文字&#xff09; 2.首先加载页面时&#xff0c;根据文字总长度判断是否超出自定义行数&#xff0c;来处理相应的数据&#xff0c;多余自定义行数&#…

[HTML+CSS+Vue.js] 超长文本等内容默认折叠显示,点击展开全文,再点击收起(仿知乎效果)

今天在做一个仿博客主页&#xff0c;日记的部分想做成折叠展开的效果&#xff0c;这样比较有利于浏览和交互&#xff0c;然后想起知乎问答的页面效果&#xff0c;就很符合我想要的样式&#xff1a; 因为之前没做过&#xff0c;不知从何下手&#xff0c;在网上查了大半天&#…