您的位置:首页 > 其它

两人生日相同的概率

2016-05-09 17:38 288 查看
题目描述:

假设你工作在一个有23人的办公室中,那么办公室中两人生日相同的机率有多少?

完整代码:

#include <iostream>


int main()

{

int n; float p = 1;

std::cin >> n;//输入总人数;


for (int i(0); i <= n; ++i)		//这部分可以也可以从1开始,只需将(365 - i) / 365变为(366 - i) / 365即可;

p = p * (365 - i) / 365;

std::cout << (1 - p) * 100 << "%";


return 0;

}


分析:

1、为了便于研究,我们剔除掉2月29号的情况(即一年有365天);

2、相同的概率 + 不相同的概率 = 1;

3、我和其他人生日不相同的概率有多少?递推到n个人;

2个人:

我和其他人生日不相同的概率

第一个人的生日是365天中的任意一天 P1 = (365 - 0)/ 365;

我和他不同的概率即有P2 =(365 - 1)/ 365 ;

所以两个人中生日不同的概率就为P1 * P2 = (365 - 0) / 365 * (365 - 1) / 365 = 0.9972;

3个人:

第一个人还是365 / 365,我依旧是(365 - 1)/ 365 ;

然后到了第三个人,他要和我们不同只能在剩下的363天中任选一天,所以他的概率就是(365 - 2)/ 365;

所以三个人中生日不同的概率就为P1 * P2 * P3 = (365 - 0) / 365 * (365 - 1) / 365 * (365 - 2)/ 365= 0.9917;

//

......

//

n个人:

递推到最后的话,我们就可以发现n个人中两人生日不相同的概率可以如下表示:

P1 * P2 * P3 * ...... * Pn = (365 - 0) / 365 * (365 - 1) / 365 * (365 - 2) / 365 * ...... * (365 - n + 1) / 365 ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: