Crossin的编程教室

标题: 一道有趣的概率题 [打印本页]

作者: crossin先生    时间: 2013-10-30 16:02
标题: 一道有趣的概率题
昨晚睡觉前在手机上看到一道概率题,然后手机没电了,就躺在床上闭着眼算,算出来之后心满意足地去睡了:

有个人,生了俩孩子,已知其中一个是男孩,这个男孩的生日是星期二,问另一个小孩是男孩的概率。


有人不相信概率算出的结果,觉得和直觉看起来太不一样。这里写个程序模拟一下:
  1. one_tuesday_boy = 0
  2. one_tuesday_boy_plus_another_boy = 0
  3. for gender1 in ['m', 'f']:
  4.     for birth1 in range(1, 8):
  5.         for gender2 in ['m', 'f']:
  6.             for birth2 in range(1, 8):
  7.                 if (gender1 == 'm' and birth1 == 2) or (gender2 == 'm' and birth2 == 2):
  8.                     one_tuesday_boy += 1
  9.                     if gender1 == 'm' and gender2 == 'm':
  10.                         one_tuesday_boy_plus_another_boy += 1
  11. print one_tuesday_boy_plus_another_boy, '/', one_tuesday_boy
复制代码

作者: 今天手气不错啊    时间: 2013-12-20 15:08
自己写的,还请老师指教。

图像 1.jpg (159.15 KB, 下载次数: 696)

图像 1.jpg

图像 2.jpg (17.65 KB, 下载次数: 679)

图像 2.jpg


作者: crossin先生    时间: 2013-12-20 22:25
今天手气不错啊 发表于 2013-12-20 15:08
自己写的,还请老师指教。

有个小错误,第7行

所以算出来结果不对
作者: 今天手气不错啊    时间: 2013-12-21 10:22
crossin先生 发表于 2013-12-20 22:25
有个小错误,第7行

所以算出来结果不对

具体如何改呢?我把第七行的“boy”改成“girl”,还是不行
作者: crossin先生    时间: 2013-12-21 21:28
今天手气不错啊 发表于 2013-12-21 10:22
具体如何改呢?我把第七行的“boy”改成“girl”,还是不行

应该是
  1. sex1=='boy' and birth1==2
复制代码
这样吧

表示第一个是星期二出生的男孩
作者: 今天手气不错啊    时间: 2013-12-22 10:26
crossin先生 发表于 2013-12-21 21:28
应该是这样吧

表示第一个是星期二出生的男孩

总算正确了。
谢谢老师

图像 1.jpg (3.48 KB, 下载次数: 684)

图像 1.jpg


作者: 码界女神    时间: 2014-2-2 14:12
1/3
怎么弄成生孩子了
不是抛硬币的吗?
作者: 码界女神    时间: 2014-2-2 21:41
我算错了
老师
请问range为啥是8不是7
作者: crossin先生    时间: 2014-2-2 23:39
码界女神 发表于 2014-2-2 21:41
我算错了
老师
请问range为啥是8不是7

python里的range是[ , )区间,range(1,8)就是1<=x<8,就是1到7
作者: liu-pengfei    时间: 2014-9-28 17:40
先生,如果题目改成:“有个人,生了俩孩子。问:其中一个是男孩并且生日是星期二,同时另一个小孩也是男孩的概率?”
是不是也是这么算?
作者: liu-pengfei    时间: 2014-9-28 18:37
码界女神 发表于 2014-2-2 14:12
1/3
怎么弄成生孩子了
不是抛硬币的吗?

是1/3吗?
作者: 月下夜翔    时间: 2015-5-25 11:08
虽然我还不会用pythin编程算,但是这应该是50%吧
作者: 追风    时间: 2016-4-29 17:36
程序看不懂啊,这个概率是怎么算的呢?
作者: crossin先生    时间: 2016-4-30 23:09
追风 发表于 2016-4-29 17:36
程序看不懂啊,这个概率是怎么算的呢?

就是模拟出各种情况,然后数有多少种可能
作者: 18629053510    时间: 2018-2-4 20:56
我没有明白,生什么性别,跟星期几有什么关系呢?
作者: TED    时间: 2018-2-4 23:05
18629053510 发表于 2018-2-4 20:56
我没有明白,生什么性别,跟星期几有什么关系呢?

他这个不是说 已知一个孩子是星期二生的小男孩,要生第二个孩子,多少概率生男孩(这样的话,生出来孩子性别是独立的,50%)

现在的题目是,这里有2个孩子,已知其中一个是周二生的男孩,这样就把两个孩子的性别、周几出生的情况给限定了(那些不包括周二生男孩的情况都给排除掉了),挑选出包含至少一个孩子是周二生的情况,然后继续找另一个孩子是男孩的情况进行计算概率







欢迎光临 Crossin的编程教室 (https://bbs.crossincode.com/) Powered by Discuz! X2.5