Chinaunix首页 | 论坛 | 博客
  • 博客访问: 988066
  • 博文数量: 158
  • 博客积分: 4380
  • 博客等级: 上校
  • 技术积分: 2367
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-21 10:45
文章分类

全部博文(158)

文章存档

2012年(158)

我的朋友

分类: C/C++

2012-11-19 10:47:12

上次给的公式是错的,这次的公式是验证过的,绝对不会再错 ^_^。
a. 50个人可能的生日组合是365*365*365*……*365(共50个)个。
b. 50个人生日都不重复的组合是 365*364*363*……*316(共50个)个。
c. 50个人生日有重复的概率是 1 - a/b

代码如下:
#include
#include
using namespace std;

unsigned int N = 50;
unsigned int M = 365;

int main()
{
    long double p = 1.0;
    for( unsigned int i=0; i        p *= (1-(double)i/M);
    p = 1-p;

    cout << p << endl;

    system( "PAUSE" );
    return 0;
}

输出结果是:0.97

但可惜long double也不足够精确,所以我将M改为3,N改为0,1,2,3,4,5做测试,结果和实际一样
0/3几率是 0
1/3几率是 0
2/3几率是 1/3
3/3几率是 7/9
4/3几率是 1
5/3几率是 1

阅读(4106) | 评论(27) | 转发(0) |
给主人留下些什么吧!~~

网友评论2012-11-19 10:54:54

jerryren
相同生日的是不少的了。是不是有人理解成同年同月同日啦?那是很少了。但是生日相同还是很多的。

网友评论2012-11-19 10:54:29

TTYang
想一下你读书的时候,基本上每个班的人就这么多
但是相同生日的有多少?

网友评论2012-11-19 10:53:03

超圣水
这个好象是几年前某一期《科幻世界》里的故事

网友评论2012-11-19 10:52:12

oo
你算出来的数是对的

但是

c. 50个人生日有重复的概率是 1 - a/b

这个地方是错的阿。。。

应该是1-b/a

a才是总的样本空间

网友评论2012-11-19 10:51:54

oo
大学里面的概率统计,有这样的题,说一个60人的班里,2人生日相同的概率几乎为1
50人,那也差不了多少。。。。。。。。。