看到题目,你们一定是一位我搞了什么高大上社会研究吧,恭喜你,答错了。今天,让我们来说点有(hen)意(wu)思(liao)的东西吧。假设在一个重女轻男的非常严重的地区,人们生活富裕,无忧无虑,而且每个家庭都非常喜欢女孩,所以说,这里的人们在养育子女的时候,直到生到女孩为止,否则,就一直生下去(多好,没有计划生育)。怎么样,这样的生活是不是很美好,很有意思,接下来让我们讨论一个更有意思的问题:请问在生到女孩时,平均每个家庭生的男孩数量。括弧:真是神一样的开头,shi一样的结尾啊。
好吧,接下来让我们仔细的考虑一下这个问题。前提,假设我们完全的相信科学,即生男生女的概率一样(难道不是吗?),都是0.5,而且这里的人们不存在什么不孕不育的现象,且不会因为担心这样或者那样的原因(比如影响二人世界)不想养育后代,好吧,废话这么多,其实就是每个家庭都会按照前面提到的生育方式去养育子女。这样,问题就变为了一个纯纯的求数学期望的问题了。要求数学期望,首先要知道概率吧,好吧,这又转化成了求第几个才生女孩的概率上来了。直觉上讲,这么进行下去,这个地区肯定会男孩的数量越来越多嘛,还用算吗?我们的直觉对不对呢,我们用高等概率论的知识(好吧,其实是高中概率)来计算一下。废话不说,接下来让我们进入计算过程:
首先计算第k胎才生女孩的概率,由下表给出:
接下来计算平均每个家庭生的男孩数量,因为,第k胎生到女孩,那么这个家庭生了男孩的数量为k-1,接下来,每个家庭生男孩的平均数量为:
OK,到这里我们算得了平均每个家庭生男孩的数量。竟然是1耶,真是不可思议啊,科学再一次秒杀了我们的直觉。
其实,我有特别的计算技巧,每当遇到这样的问题,我总是会假装看风景……让我们回到最初的问题,其实问题没有上面说的这么复杂,我真的是有特别的计算方法。事实上,我们已经假定生男生女的概率都是0.5,那么事实上无论经过多少代,无论你按照什么样的生育方式,都不会改变这个科学事实(好吧,科学的力量是不可战胜的,打到一切牛鬼蛇神),这样,这个地区的男女比例就会保持在1:1,好了,那么每个家庭究竟平均生几个男孩呢?假定此地区的人有无限的生育能力,只要没有女孩,就会生下去……好吧,这样,每家有且只有一个女孩,那么男孩的数量肯定就是1了,要不怎么来的1:1平局呢?好吧,思维的强大再一次把我轰杀至渣。
最后,让我们来做一下仿真吧。假定地区开始时人口 100000 ,繁殖 50 代 ,为了尊重事实,首先我们假定每个家庭就生 10 个孩子,也就是无论第十个究竟生没生出女孩,都不生了,其次,男孩和女孩的数量较小的决定家庭数目,仿真五十年,哦不,是仿真这个地区的人口演化了五十年,我可不是专业仿真50年。好吧,仿真结果如下图,可以看到,每个家庭生男孩的数量确实保持在 1 的平均水平,会稍有波动,仿真程序随后附上:好吧,今天真是搞(bei)笑(cui)的一天。
Code:
function []=meangirls(L)
%%
population = 1E6; %the init population or the family num
generation = L; %
childnum = 10; %assume that each family can most have 10 children
prob = 0.5;
girls = 0;
boys = 0;
girlsv = zeros(L,1);
perv = zeros(L,1);
%%
for ii=1:generation
for jj=1:population
for kk=1:childnum
chi = rand(1,1)<prob;
if chi == 0
girls = girls + 1;
else
boys = boys + 1;
break;
end
end
end
girlsv(ii) = girls/population;
perv(ii) = girls/boys;
if girls < boys
population = girls;
else
population = boys;
end
girls = 0;
boys = 0;
end
time = 1:L;
figure
plot(time,girlsv,'r-');title('mean boys');
axis([1 L 0.8 1.2]);
figure
plot(time,perv,'g-');title('proportion of boys and girls');
axis([1 L 0 1]);
end