假设:
1. 妹子们一生中可以遇到100个追求者,追求者的优秀程度符合正态分布;
2. 每个妹子都具备判断并比较追求者优秀程度的能力;
3. 接受或拒绝一个追求者后永远无法后悔。
问题:当遇到追求者时,如何选择才能获得最优结果?
下面介绍选择方法:
首先,为了不错过在未来可以接受更优秀的追求者,理性的妹子会拒绝最早的一批追求者,并且采用第一批追求者做样本量k,理性地判断出追求者中最优秀的一位,其优秀程度记作y。然后,当遇到新追求者的时候,将追求者的优秀程度与y进行比较,优于y则选择接受,否则继续等待新的追求者;若新追求者的优秀程度始终小于y,则选择做剩女。
如何求出最优的样本量k?
如果最优秀的追求者出现在第 i 个位置(k < i ≤ n),其中k、n为大于0的固定值。要想让第i个出现的他成功被妹子接受,就必须得满足前 i-1 任意一个位置出现的追求者被拒绝,这有 k/(i-1) 的可能。考虑所有可能的 i,我们便得到了试探前 k 个追求者之后能选中最佳追求者的总概率 P(k):
用 x 来表示 k/n 的值,并且假设 n 充分大,则上述公式可以写成:
对-xlnx求导,并令这个导数为0,可以解出x的最优值,它就是欧拉研究的神秘常数的倒数“1/e”,则样本量k=n*x=n/e。即当预计总追求者人数为100的时候,应先拒绝掉前100/e =37个人,用来做追求者样本。
图3、图4代表按照此种选择方法,重复100次实验(100个妹子)得到的追求者分布状态,通过散点图可以看出,其中有60个妹子成功找到如意郎君,被接受的追求者优秀程度在80左右;其余40个妹子们,由于在第一批追求者当中拒绝掉了最优秀的那位,无奈选择做剩女。
综上所述得出以下结论:
1. 样本人数最优值为样本总量的37%;
2. 比较优秀的追求者成功追到妹子的概率在60%左右;
3. 优秀者的最佳出现时机为中间偏后位置。
y=z=m=numeric()
for (i in seq(1,100))
{
x=round(rnorm(100, 50, 15))
max(x[1:37])
a=max(x[1:37])
for (i in seq(37,100))
{
if (x>a){
b=x
m=i
break
}
else b=m=0
}
y=c(y,b)
z=c(z,m)
}
n=1:length(y)
plot(n,y,xlim=c(0,100), ylim=c(0,100),main="接受追求者散点图", ylab="优秀程度", xlab="实验次数")
y=y[y>0]
plot(density(y),xlim=c(0,100), main="优化后接受追求者分布图", ylab="密度", xlab="优秀程度")
n=1:length(z)
plot(n,z,xlim=c(0,100),ylim=c(0,100), main="追求者散点图", ylab="接受时机", xlab="实验次数")
z=z[z>0]
n=1:length(z)
plot(density(z),xlim=c(0,100), main="接受时机分布图", ylab="密度", xlab="接受时机")
暂无数据