我在求职面试能力测验中遇到了一个批判性思考的问题。它是这样的:
Zorganian Republic有一些非常奇怪的习俗。夫妻只希望生女,因为只有女才能继承家庭的财产,因此,如果有男生,他们将继续生更多的孩子,直到有了女孩。如果他们有一个女孩,他们就不再有孩子。在Zorgania,男女比例是多少?
我不同意问题作者给出的模型答案,该答案大约为1:1。有道理的是,任何出生都会有50%的机会成为男性或女性。
如果是该国的女孩人数,B是该国的男孩人数,您能否用数学上更强的答案说服我?G
我在求职面试能力测验中遇到了一个批判性思考的问题。它是这样的:
Zorganian Republic有一些非常奇怪的习俗。夫妻只希望生女,因为只有女才能继承家庭的财产,因此,如果有男生,他们将继续生更多的孩子,直到有了女孩。如果他们有一个女孩,他们就不再有孩子。在Zorgania,男女比例是多少?
我不同意问题作者给出的模型答案,该答案大约为1:1。有道理的是,任何出生都会有50%的机会成为男性或女性。
如果是该国的女孩人数,B是该国的男孩人数,您能否用数学上更强的答案说服我?G
Answers:
从没有孩子开始
重复步骤
{
每对仍然有孩子的夫妇都有一个孩子。一半夫妻有男性,一半夫妻有女性。
那些有女性的夫妇不再生孩子
}
在每一步中,您得到的男女人数是偶数,并且有孩子的夫妇的数量减少了一半(即,有女性的夫妇在下一步将没有任何孩子)
因此,在任何给定时间,男性和女性的数量都是相等的,而且逐步生育子女的夫妇的数量减少了一半。随着创造更多的夫妻,同样的情况再次发生,并且在其他所有条件相同的情况下,人口中的男性和女性人数相同
令为家庭中男孩的数量。一旦有了一个女孩,他们就会停下来,所以
如果是一个孩子是男孩的概率,并且性别在两个孩子之间是独立的,那么一个家庭最终拥有男孩的概率为 即生男孩然后生一个女孩的概率。男孩的预期人数是 注意我们得到 ķ P(X = ķ )= p ķ ⋅ (1 - p ),ķ
如果,则具有。也就是说,平均每个家庭有一个男孩。我们已经知道所有家庭都有1个女孩,所以随着时间的流逝,这个比例甚至是。ë X = 0.5 / 0.5 1 / 1 = 1
随机变量被称为几何随机变量。
p
是所有的家庭一样。相反,如果我们假设有些夫妻更有可能生男孩比别人(即,它们p
是更高),那么结果的变化,即使平均的值p
仍是0.5。(不过,这是对基本统计数据的很好的解释。)
所有出生独立有50%机会成为女孩的简单模型是不现实的,而且事实证明,这是例外。一旦我们考虑到人群中结果差异的后果,答案就是女孩与男孩的比率可以是不超过1:1的任何值。(实际上,它仍然可能接近1:1,但这是数据分析确定的问题。)
由于这两个相互矛盾的答案都是通过假设出生结局具有统计独立性而获得的,因此对独立性的呼吁不足以作出解释。因此看来,变异(以女性出生的机会为准)是悖论背后的关键思想。
当我们认为我们有充分的理由相信某事,但面对相反的扎实论证时,就会发生悖论。
令人满意的悖论解决方案有助于我们理解两种论点的对与错。就像概率和统计中的通常情况一样,这两个参数实际上都是有效的:解决方案取决于隐式做出的假设之间的差异。比较这些不同的假设可以帮助我们确定情况的哪些方面导致不同的答案。我认为,确定这些方面是我们最应该重视的。
正如到目前为止发布的所有答案所证明的那样,很自然地假设女性出生是独立发生的,并且概率为。众所周知,这两个假设都不是真的,但似乎与这些假设的微小差异不会对答案产生太大影响。让我们看看。为此,请考虑以下更一般,更现实的模型:
在每个家庭,无论出生顺序如何,女性生育的概率都是常数。p 我
在没有任何制止规则的情况下,人口中预期的女性出生人数应接近预期的男性出生人数。
所有出生结局都是(统计上)独立的。
这仍然不是一个完全现实的人类出生模型,其中可能会随着父母(尤其是母亲)的年龄而变化。但是,它具有足够的现实性和灵活性,可以提供令人满意的悖论分辨率,甚至可以将其应用于更一般的模型。
尽管对此模型进行全面分析很有趣,但要点也很明显,即使考虑到特定的,简单的(但有些极端)的版本。假设人口有个家庭。其中一半的女性生育几率是,另一半的女性生育几率是。这显然满足条件(2):预期的男女出生数相同。2 / 3 1 / 3
考虑那些最初的个家庭。让我们根据期望进行推理,了解实际结果将是随机的,因此与期望会有一些差异。(下面的分析背后的想法是在这篇文章的最后出现的原始答案中进行了更简短,更简单的传达。)
令是具有恒定女性出生概率的人口中预期的女性出生数量。显然,这与成正比,因此可以写成。同样,令为预期的男性出生人数。
的第一个家庭生一个女孩,然后停下来。其他个家庭生育一个男孩并继续生育孩子。到目前为止,这是女孩和男孩。
其余个家庭的位置与以前相同:独立性假设(3)表示,他们未来的经历不受长子是儿子这一事实的影响。因此,这些家庭将多产个女孩,多生个男孩。
将女孩和男孩的总数相加并与它们的和的假定值进行比较,得出方程
与解决方案
在前个家庭中,的预期女孩数为,而预期的男孩数量为。
在第二个个家庭中,的预期女孩数为,而预期的男孩数量为。
总数为女孩和男孩。对于较大的,预期比率将接近预期比率,
停止规则有利于男孩!
更一般地说,对于一半的家庭,女孩的概率分别为,而另一半的男孩的概率为,则条件(1)至(3)继续适用,并且对于大的方法,预期比率
根据(当然在到之间),该值可以在到之间(但不能大于)。仅当时,才达到最大值。换句话说,预期的女孩与男孩的比例为1:1是一个特殊的例外,这是更普遍和现实的规则,即与第一个女孩一起停止会有利于人口中更多的男孩。
如果您的直觉是停止与第一个女孩在一起应该会在人口中培养更多的男孩,那么您就是正确的,如此示例所示。为了正确起见,您所需要的只是在各个家庭中生一个女孩的几率有所不同(甚至只有一点点)。
“官方的”答案是比率应接近1:1,这需要几个不切实际的假设并且对它们很敏感:它假设家庭之间不能有差异,并且所有出生必须是独立的。
该分析强调的关键思想是,人口内部的差异具有重要的后果。 出生独立性虽然是该线程中每个分析的简化假设,但并不能解决这一矛盾,因为(取决于其他假设)它既与官方回答相反,又与之相反。
但是请注意,要使预期比率基本上偏离1:1,我们需要在总体中之间有很大的差异。如果所有在0.45至0.55之间,那么这种变化的影响将不会非常明显。要解决人口中实际上是什么的问题,需要一个相当大且准确的数据集。人们可能会使用广义线性混合模型并进行过度分散测试。
如果我们用其他一些遗传表达代替性别,那么我们就可以得到一个关于自然选择的简单统计解释:基于后代的遗传组成来差异地限制后代数量的规则可以系统地改变下一代中这些基因的比例。当该基因不具有性别关联时,即使很小的影响也将通过连续的世代繁殖并迅速放大。
每个孩子都有一个出生顺序:第一胎,第二胎,等等。
假设男女出生的概率相等,而性别之间没有相关性,则弱势群体法则认为初生女性与男性的比例接近1:1 。出于同样的原因,第二胎女性与男性的比例接近1:1,依此类推。由于这些比例始终为1:1,因此总人口比例也必须为1:1,无论人口中出生顺序的相对频率如何。
每个孩子的出生都是一个独立的事件,男孩的P = 0.5,女孩的P = 0.5。其他细节(例如家庭决定)只会使您无视此事实。答案是比率为1:1。
对此进行说明:想象一下,不是要生孩子,而是要掷一个公平的硬币(P(heads)= 0.5)直到获得“ heads”。假设A族掷硬币并获得[尾巴,尾巴,头]的顺序。然后,家庭B掷硬币并得到尾巴。现在,下一个成为正面人物的可能性是多少?仍为0.5,因为那是独立的意思。如果要对1000个族进行此操作(这意味着要抬起1000个头),则预期的总尾数为1000,因为每个翻转(事件)都是完全独立的。
有些东西不是独立的,例如一个家庭中的序列:序列[头,头]的概率为0,不等于[尾巴,尾巴](0.25)。但是由于问题并不是在问这个问题,所以这是无关紧要的。
之所以能解决这个问题,是因为在这种情况下,女孩较多的可能性要比男孩较多的可能性大得多。而且有更多男孩的情况下概率很低。它自己运作的具体方式如下所示
NumberOfChilden Probability Girls Boys
1 0.5 1 0
2 0.25 1 1
3 0.125 1 2
4 0.0625 1 3
... ... ... ...
NumberOfChilden Probability Girls*probabilty Boys*probabilty
1 0.5 0.5 0
2 0.25 0.25 0.25
3 0.125 0.125 0.25
4 0.0625 0.0625 0.1875
5 0.03125 0.03125 0.125
... ... ... ...
n 1/2^n 1/(2^n) (n-1)/(2^n)
您几乎可以看到此时的情况,女孩和男孩的总数加起来为1。
一对夫妇的预期男生
一对夫妇的预期男生
Wolfram的极限解决方案
这一切都具有内在的意义,因为(无法尝试)夫妻无法控制特定出生是男孩还是女孩的可能性。一个孩子是由一对没有孩子的夫妇或一个有一百个男孩的家庭所生,都没有关系。机会是50:50,所以如果每个单独的出生都有50:50的机会,那么您应该总是得到一半的男孩和一半的女孩。而且,无论您如何改变家庭之间的出生关系,都没有关系。您不会影响到这一点。
由于由于任何出生的可能性为50:50,因此您可以提出的任何(合理1)规则的比率最终将为1:1 。例如,下面的类似规则甚至可以解决
夫妻生一个女孩或生两个孩子时不再生育
NumberOfChilden Probability Girls Boys
1 0.5 1 0
2 0.25 1 1
2 0.25 0 2
在这种情况下,更容易计算出预期的孩子总数
一对夫妇的预期女孩
一对夫妇的预期男孩
1如我所说,这适用于现实世界中可能存在的任何合理规则。一个不合理的规则是每对夫妇的预期孩子数是无限的。例如,“父母只有在男孩的男孩数量是女孩的两倍时才停止生育孩子”,我们可以使用与上述相同的方法来证明该规则为无限个孩子提供了:
NumberOfChilden Probability Girls Boys
3 0.125 1 2
6 1/64 2 4
9 1/512 3 6
3*m 1/((3m)^2 m 2m
然后我们可以找到有有限个孩子的父母数量
预期有有限子女的父母人数
Wolfram的极限解决方案
因此,我们可以确定82%的父母有无限多个孩子。从城市规划的角度来看,这可能会引起困难,并表明这种情况在现实世界中不可能存在。
您还可以使用模拟:
p<-0
for (i in 1:10000){
a<-0
while(a != 1){ #Stops when having a girl
a<-as.numeric(rbinom(1, 1, 0.5)) #Simulation of a new birth with probability 0.5
p=p+1 #Number of births
}
}
(p-10000)/10000 #Ratio
mean(rgeom(10000, 0.5))
您得到的是最简单的答案。如果新生婴儿是男孩的概率是p,而不幸的事故没有遇到性别错误的孩子,那么父母是否根据孩子的性别决定是否生育更多孩子也没关系。如果孩子的数量为N并且N大,则可以预期大约p * N个男孩。无需进行更复杂的计算。
当然还有其他问题,例如“有孩子的家庭中最小的孩子是男孩的概率是多少”,或“有孩子的家庭中年龄最大的孩子是男孩的概率是多少”。(其中一个具有简单的正确答案,另一个具有简单的错误答案,要获得正确的答案很棘手)。
这是一个技巧问题。比例保持不变(1:1)。正确的答案是,它不会影响出生率,但会影响每个家庭的孩子数量,而每个家庭平均只能生育2个限制因素。
您可能会在逻辑测试中发现这种问题。答案与出生率无关。太分心了。
这不是概率问题,而是认知推理问题。即使您以1:1的比例回答,您仍然无法通过测试。
我正在展示使用MATLAB软件为Monte Carlo模拟(500x1000系列)编写的代码。请仔细检查代码,以免出现错误。
结果生成并绘制在下面。它显示了模拟的女孩的出生概率与潜在的自然出生概率具有很好的一致性,而不管自然出生概率范围的终止规则如何。
玩弄代码可以更容易地理解我以前没有做过的一点-就像其他人指出的那样,停止规则是一种干扰。停止规则仅影响给定人口的家庭数量,或者从另一个角度来看给给定数量家庭的儿童出生数量。性别完全由掷骰子决定,因此比率或概率(与孩子的数量无关)将完全取决于自然的男孩:女孩的出生比例。
testRange=0.45:0.01:0.55;
N=uint32(100000); %Used to approximate probability distribution
M=1000; %Number of families
L=500; %Monte Carlo repetitions
Nfamily=zeros(length(testRange),1);
boys=zeros(length(testRange),1);
girls=zeros(length(testRange),1);
for l = 1:L
j=1; %Index variable for the different bgratio
for bgratio=testRange
k=1; %Index variable for family in each run (temp family id)
vec=zeros(N,1);
vec(1:N*bgratio,1)=1; %Approximate boy:girl population for dice roll,
%1 = boy
vec=vec(randperm(s,N)); %Random permutation, technically not necessary
%due to randi used later, just be safe
bog = vec(randi(N)); %boy or girl? (God's dice roll)
while k<M %For M families...
if bog == 1 %if boy:
boys(j) = boys(j)+1; %total global boys tally
else
girls(j)=girls(j)+1; %total global girls tally
%Family stops bearing children
Nfamily(j) = Nfamily(j)+1; %total global family tally
k=k+1; %temp family id
%Next family...
end
bog=vec(randi(N)); %Sample next gender (God's dice roll)
end
j=j+1; %Index variable for the different bgratio
end
end
figure;
scatter(testRange,girls./(boys+girls))
hold on
line([0 1],[0 1],'LineStyle','--','Color','k')
axis([0.44 0.56 0.44 0.56])
在查看其他人所做的事情之前,我还单独在matlab中编写了一个仿真程序。严格来说,它不是MC,因为我只运行了一次实验。但是一次足以获得结果。这是我的模拟结果。我不赞成将出生概率设为p = 0.5作为原始变量。我让出生概率在Pr(Boys = 1)= 0.25:0.05:0.75的范围内变化。
我的结果表明,当概率偏离p = 0.5时,性别比与1:有所不同。在预期中,性别比只是男孩出生的概率与女孩出生的概率之比。也就是说,这是@månst先前标识的几何随机变量。我认为这就是原始海报的直觉。
我的结果非常类似于上述用matlab代码制作的海报所做的工作,将性别比例匹配为男孩出生的0.45、0.50和0.55概率。我介绍我的方法是因为我采用了稍有不同的方法来以更快的代码获得结果。为了完成比较,我省略了代码段vec = vec(randperm(s,N)),因为s未在其代码中定义,并且我也不知道此变量的初衷(该代码段似乎也是多余的-与最初一样)说)。
我发布我的代码
clear all; rng('default')
prob_of_boy = 0.25:0.05:0.75;
prob_of_girls = 1 - prob_of_boy;
iterations = 200;
sex_ratio = zeros(length(prob_of_boy),1);
prob_of_girl_est = zeros(length(prob_of_boy),1);
rounds_of_reproduction = zeros(length(prob_of_boy),1);
for p=1:length(prob_of_boy)
pop = 1000000;
boys = zeros(iterations,1);
girls = zeros(iterations,1);
prob_of_girl = zeros(iterations,1);
for i=1:iterations
x = rand(pop,1);
x(x<prob_of_boy(p))=1;
%count the number of boys and girls
num_boys = sum(x(x==1));
boys(i) = num_boys;
girls(i) = pop - num_boys;
prob_of_girl(i) = girls(i)/(pop);
%Only families that had a boy continue to reproduce
x = x(x==1);
%new population of reproducing parents
pop = length(x);
%check that there are no more boys
if num_boys==0
boys(i+1:end)=[];
girls(i+1:end)=[];
prob_of_girl(i+1:end)=[];
break
end
end
prob_of_girl_est(p) = mean(prob_of_girl(prob_of_girl~=0));
sex_ratio(p) = sum(boys)/sum(girls);
rounds_of_reproduction(p) = length(boys);
end
scatter(prob_of_girls,prob_of_girl_est)
hold on
title('Est. vs. True Probability of a Girl Birth')
ylabel('Est. Probability of Girl Birth')
xlabel('True Probability of Girl Birth')
line([0 1],[0 1],'LineStyle','--','Color','k')
axis([0.2 0.8 0.2 0.8])
scatter(prob_of_girls,sex_ratio)
hold on
title('Sex Ratio as a function of Girls')
xlabel('Probability of Girls Birth')
ylabel('Sex Ratio: $\frac{E(Boys)}{E(Girls)}$','interpreter','latex')
scatter(prob_of_girls,rounds_of_reproduction)
hold on
title('Rounds of Reproduction a function of Girls')
xlabel('Probability of Girls Birth')
ylabel('Rounds of Reproduction')
考虑到大量的强定律,预期下图。我复制了它,但是重要的图形是第二个图形。
在这里,孩子的性别出生概率为0.5以外的人口概率将改变总人口中的性别比。假设生育是独立的(但不是继续生育的选择),则在每一轮有条件生育中,人口概率决定着男孩和女孩生育结果的整体构成。因此,正如其他人所提到的那样,问题的制止规则与总体结果无关紧要,正如张贴者所指出的那样,即几何分布。
为了完整起见,制止规则所影响的是种群中的繁殖轮数。由于我只运行一次实验,因此图表有点锯齿。但是直觉是存在的:对于给定的人口规模,随着女孩出生的可能性增加,我们看到在整个人口停止生育之前,家庭需要较少的生育轮来获得所需的女孩(显然,生育轮数取决于人口规模,因为它机械地增加了一个家庭在生第一个女孩之前会有49个男孩的可能性)
我计算出的性别比之间的比较:
[sex_ratio' prob_of_boy']
0.3327 0.2500
0.4289 0.3000
0.5385 0.3500
0.6673 0.4000
0.8186 0.4500
1.0008 0.5000
1.2224 0.5500
1.5016 0.6000
1.8574 0.6500
2.3319 0.7000
2.9995 0.7500
以及上一幅带有matlab代码的海报:
[boys./girls testRange']
0.8199 0.4500
0.8494 0.4600
0.8871 0.4700
0.9257 0.4800
0.9590 0.4900
1.0016 0.5000
1.0374 0.5100
1.0836 0.5200
1.1273 0.5300
1.1750 0.5400
1.2215 0.5500
它们是等效的结果。