C++ 中的生日悖論
生日悖論是機率學中一個非常著名的難題。該問題的陳述如下:
在一次生日聚會上,有很多人,有些人可能有相同的生日衝突。我們需要根據擁有相同生日的人數來找到生日聚會上大約有多少人。
在機率中,我們知道獲得正面朝上的機率是 1/2,就像我們有一些硬幣一樣,獲得 10 個正面的機率是 1/100 或 0.001。
讓我們來理解這個概念:
兩個人擁有不同生日的機率是:
364/365,即 1-1/365,在平年。
因此,我們可以說第一個人有特定生日的機率是“1”,而對於其他人來說,它將是不同的,即:
P(不同) = 1×(1-1/365)× (1-2/365)× (1-3/365) × (1-4/365).......
因此 P(相同) = 1- P(不同)
例如:
機率為 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
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP