C ++中的生日悖论
在概率部分,生日悖论是一个非常著名的问题。该问题的问题陈述表示为:
生日聚会上有几个人,有些人发生相同的生日碰撞。我们需要找到大概的数字。参加相同生日的生日聚会上的人数。
很有可能我们知道获得领先的机会与拥有一些硬币的机会相同是1/2,获得10个正面的机会是1/100或0.001。
让我们了解一下这个概念,
两个人生日不同的机会是,
364/365,即非-年中的1-1/365。
因此,我们可以说具有特定生日可能性的第一个人为“1”,而对于其他人而言,这将是不同的,即,
P(different)=1×(1-1/365)×(1-2/365)×(1-3/365)×(1-4/365)......
因此P(same)=1-P(different)
例如,
拥有相同生日的概率为0.70的人数。
N=√2×365×log(1-1/p)。
N=√2×365×log(1-1/0.70)=30
因此,总的近似号为。相同生日的人是30岁。
示例
#include<bits/stdc++.h> using namespace std; int findPeople(double p){ return ceil(sqrt(2*365*log(1/(1-p)))); } int main(){ printf("%d",findPeople(0.70)); }输出结果
30