生日悖论问题——《算法导论学习笔记》

2024-03-01 23:58

本文主要是介绍生日悖论问题——《算法导论学习笔记》,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1      生日悖论问题

1.1    原始问题

一个房间里的人数必须达到多少,才能使两个人生日相同的机会达到50%?不考虑闰年情况,也就是一年按照365天来计算。

 

解答:

假设房间里的人数是k,我们对其进行编号:1, 2, … , k

为简单起见,用n表示一年的天数(也就是365天),那么一个人的生日在一年中的哪一天应该是机会均等的,我们用bi表示第i个人的生日,1<=bi<=n,因此,Pr{bi=r}=1/n,对于i=1,…,kr=1,...,n成立。

 

这个问题可以通过求补法来求解:

 

也就是先计算任意两个人的生日都不相同的概率,然后用1去减,就可以算得相应概率。

K个人各有互不相同生日的事件为

Bk = ∩Ai(i=1,..,k)

其中Ai是指对所有的j<iij生日不同的事件。

Bk=Ak ∩Bk-1

ð  Pr{Bk}=Pr{Bk-1}Pr{Ak | Bk-1}

初始条件Pr{B1}=Pr{A1}=1.

 

如果b1,b2,…,bk-1互异,条件概率bkb1,b2,..bk-1互异的概率为(n-k+1)/n

 

Pr{Bk}=1*((n-1)/n)* ((n-2)/n)*…((n-k+1)/n)

根据1+x<=e[x]

Pr{Bk}<=e[-1/n-2/n…-(k-1)/n]<=0.5

K(k-1)>=2nln2

n=365时,解得k>=23

 

因此,如果至少有23个人在一个房间里,那么至少有两个人生日相同的概率至少是0.5

1.2    引申问题

一个房间里必须要有多少人,才能让某人和你生日相同的概率至少为1/2?必须要有多少人,才能让至少有两个人生日为74日的概率大于1/2

 

第一个问题:

使用与前面类似的分析方法,可以得

1-((n-1)/n)[k-1] >= 0.5

从而解得k>=254人

 

第二个问题:

同样采用求补法:

分成两种情况考虑问题:

第一种情况:没有一个人生日为74

第二种情况:有一个人生日为74

可得表达式1-((n-1)/n)[k] – (k/n)((n-1)/n)[k-1]>=0.5

 

这篇关于生日悖论问题——《算法导论学习笔记》的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/764260

相关文章

MySQL主从同步延迟问题的全面解决方案

《MySQL主从同步延迟问题的全面解决方案》MySQL主从同步延迟是分布式数据库系统中的常见问题,会导致从库读取到过期数据,影响业务一致性,下面我将深入分析延迟原因并提供多层次的解决方案,需要的朋友可... 目录一、同步延迟原因深度分析1.1 主从复制原理回顾1.2 延迟产生的关键环节二、实时监控与诊断方案

SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法

《SQLyog中DELIMITER执行存储过程时出现前置缩进问题的解决方法》在SQLyog中执行存储过程时出现的前置缩进问题,实际上反映了SQLyog对SQL语句解析的一个特殊行为,本文给大家介绍了详... 目录问题根源正确写法示例永久解决方案为什么命令行不受影响?最佳实践建议问题根源SQLyog的语句分

解决IDEA报错:编码GBK的不可映射字符问题

《解决IDEA报错:编码GBK的不可映射字符问题》:本文主要介绍解决IDEA报错:编码GBK的不可映射字符问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录IDEA报错:编码GBK的不可映射字符终端软件问题描述原因分析解决方案方法1:将命令改为方法2:右下jav

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖

Spring 中的循环引用问题解决方法

《Spring中的循环引用问题解决方法》:本文主要介绍Spring中的循环引用问题解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录什么是循环引用?循环依赖三级缓存解决循环依赖二级缓存三级缓存本章来聊聊Spring 中的循环引用问题该如何解决。这里聊

Java学习手册之Filter和Listener使用方法

《Java学习手册之Filter和Listener使用方法》:本文主要介绍Java学习手册之Filter和Listener使用方法的相关资料,Filter是一种拦截器,可以在请求到达Servl... 目录一、Filter(过滤器)1. Filter 的工作原理2. Filter 的配置与使用二、Listen

Spring Boot中JSON数值溢出问题从报错到优雅解决办法

《SpringBoot中JSON数值溢出问题从报错到优雅解决办法》:本文主要介绍SpringBoot中JSON数值溢出问题从报错到优雅的解决办法,通过修改字段类型为Long、添加全局异常处理和... 目录一、问题背景:为什么我的接口突然报错了?二、为什么会发生这个错误?1. Java 数据类型的“容量”限制

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图