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

article/2025/8/28 2:53:39

点击蓝色“五分钟学算法”关注我哟

加个“星标”,一起学算法

640

作者 | labuladong

来源 | labuladong


生日悖论是由这样一个问题引出的:一个屋子里需要有多少人,才能使得存在至少两个人生日是同一天的概率达到 50%


给你 5 秒钟随便猜一个数字,再点击下方空白处查看答案!


点击下方空白区域查看答案

答案是 23 个人,也就是说房子里如果有 23 个人,那么就有 50% 的概率会存在两个人生日相同。

640?wx_fmt=gif


这个结论看起来不可思议,所以被称为悖论。按照直觉,要得到 50% 的概率,起码得有 183 个人吧,因为一年有 365 天呀?其实不是的,觉得这个结论不可思议主要有两个思维误区:


第一个误区是误解「存在」这个词的含义。


读者可能认为,如果 23 个人中出现相同生日的概率就能达到 50%,是不是意味着:


假设现在屋子里坐着 22 个人,然后我走进去,那么有 50% 的概率我可以找到一个人和我生日相同?


并不是的,你这种想法是以自我为中心,而题目的概率是在描述整体。也就是说「存在」的含义是指 23 人中的任意两个人,涉及排列组合,大概率和你这个个体没啥关系。


如果你非要计算存在和自己生日相同的人的概率是多少,可以这样计算:


1 - P(22 个人都和我的生日不同) = 1 -(364/365)^22 = 0.06


这样计算得到的结果是不是看起来合理多了?生日悖论计算的对象不是某一个人,而是一个整体,其中包含了所有人的排列组合,它们的概率之和当然会大得多。


第二个误区是认为概率是线性变化的。


读者可能认为,如果 23 个人中出现相同生日的概率就能达到 50%,是不是意味着 46 个人的概率就能达到 100%?


不是的,就像中奖率 50% 的游戏,你玩两次的中奖率就是 100% 吗?显然不是,你玩两次的中奖率是 75%:


P()=P()+P()=1/2+1/21/2=75%


那么换到生日悖论也是一个道理,概率不是简单叠加,而要考虑一个连续的过程。所以 23 个人能达到 50% 的概率并没有什么不合常理之处。


那为什么只要 23 个人出现相同生日的概率就能大于 50% 了呢?我们先计算 23 个人生日都唯一(不重复)的概率。只有 1 个人的时候,生日唯一的概率是 365/365,2 个人时,生日唯一的概率是 365/365×364/365,以此类推,可知 23 人的生日都唯一的概率:


640?wx_fmt=png


算出来大约是 0.493,所以存在相同生日的概率就是 0.507,差不多就是 50% 了。


实际上,按照这个算法,当人数达到 70 时,存在两个人生日相同的概率就上升到了 99.9%,基本可以认为是 100% 了。



所以从概率上说,一个几十人的小团体中存在生日相同的人真没啥稀奇的。


如你对这种反直觉的问题还感兴趣的话,可以看看小吴之前的那篇文章:神奇的三门问题。

END

640?wx_fmt=png

 原 创 热 文 推 荐 


毕业十年后,我忍不住出了一份程序员的高考试卷

一道腾讯面试题:厉害了我的杯

十大经典排序算法动画与解析,看我就够了

这或许是东半球分析十大排序算法最好的一篇文章

面试官,我会写二分查找法!对,没有 bug 的那种!


640?wx_fmt=png 你点的每个“在看”,我都认真当成了喜欢

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

相关文章

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

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

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

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

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

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

列表页面的展开以及收起

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

CSDN自动展开全文的插件

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

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

看图说话比较清晰,点击红色标记的区域,会展开全文。 相关知识点 YYLabel,truncationTokenNSAttributedString,YYText,YYTextHighlight 我们来看一下YYLabel的属性truncationToken,是一个富文本&#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;在网上查了大半天&#…

vue 展开全文,收起全文

样式效果 1.展开全文 2.收起全文 html <div class"content_box"><div class"cont_top"><div class"bluebox"></div><span>详情描述</span><span class"divider"></span></div&g…

html如何制作展开全文,如何实现文章内容页点击“展开阅读全文”的功能

我们在手机端看CSDN或知乎上的文章时&#xff0c;都会有一个点击展开阅读全文的按钮。这个功能效果使用还是很广泛的&#xff0c;网上也有很多这样的jq插件可以实现&#xff0c;今天小郭给大家分享一下自己在项目中常用到的js点击展开阅读全文的代码。 如下图&#xff1a; 完整…

令人头疼的“展开原文”,请收好这款神器!

互联网时代下&#xff0c;网上阅读资讯也早已成为用户习惯。 但近几年&#xff0c;随着互联网的发展&#xff0c;一个令人头疼的现象出现了&#xff0c;即网上越来越多文章&#xff0c;都需要点击一次&#xff0c;才能查看全文了&#xff0c;就像下面这样子…… 尤其对于网站的…

百度白皮书5.0解读如何合理设置展开全文功能

导读&#xff1a;2020年3月&#xff0c;百度发布了《百度APP移动搜索落地页体验白皮书5.0》。白皮书5.0发布后&#xff0c;收到许多开发者关于体验规范的反馈建议&#xff0c;针对开发者集中关心的规范问题&#xff0c;百度搜索将推出白皮书5.0系列解读文章&#xff0c;精准助力…

Mac快捷输入iPhone短信验证码

一、验证码输入&#xff1a; 二、设置步骤&#xff1a; iPhone&#xff1a;设置->短信->短信转发->打开 Mac开关