摘要
本篇文章通过最优停时理论,用苏格拉底捡麦穗的实例,建立模型。分析在怎么样的采样容量下, 苏格拉底捡到最长的麦穗的情况的可能性是最高的, 并给出概率的具体数值。
本篇文章首先从数学理论角度证明最优的采样空间概率,再通过计算机代码实验证明最优停止理论的正确性,从而 给出一个较优的采样方法,同样可以运用于爱情问题等其他现实生活问题中。
关键词: 最优停止理论;苏格拉底麦穗理论;采样空间;爱情选择
1 引言
当苏格拉底谈到爱情这一话题时,苏格拉底把学生带到了一个麦田。麦田的地上有很多麦穗, 苏格拉底要求学生从头开始一路走过去,只能捡一次麦穗。并且在道路上,只能前进,不能后退。 由于际遇的随机性,通常很难真正地选到自己最满意的那一个。那么,该观察多少麦穗之后再下手,捡到的最大的麦穗的可能性是最大的,是一个值得研究的问题。
本论文数学证明了最优停止 理论的数学性,并通过实验证明,当选取 36.8% 为采样空间时,选到最大的麦穗的概率是最大的。 同理,在女生一生的恋爱中,选取前 36.8% 作为采样空间,找到真爱的概率是最大的。
2 数学理论证明
设有 n 个人,放弃前 k 个人,若按此策略最终选到最优的人的概率为 P(k), 则
P
(
k
)
=
P
(
第
k
+
1
个
人
是
最
优
的
)
+
P
(
第
k
+
2
个
人
是
最
优
的
)
+
.
.
.
+
P
(
第
n
个
人
是
最
优
的
)
=
1
n
+
1
n
∗
k
k
+
1
+
1
n
∗
k
k
+
2
+
.
.
.
+
1
n
∗
k
n
−
1
=
k
n
∗
(
1
k
+
1
k
+
1
+
1
k
+
2
+
.
.
.
+
1
n
−
1
)
=
k
n
∑
i
=
k
n
−
1
1
i
P(k) = P(第k+1个人是最优的) +P(第k+2个人是最优的)+...+P(第n个人是最优的) = \frac{1}{n} + \frac{1}{n} * \frac{k}{k + 1} + \frac{1}{n} * \frac{k}{k + 2} + ... + \frac{1}{n} * \frac{k}{n - 1}\\ = \frac{k}{n} * (\frac{1}{k} + \frac{1}{k + 1} + \frac{1}{k + 2} +... + \frac{1}{n -1})\\ =\frac{k}{n}\sum\limits_{i=k}^{n -1} \frac{1}{i}
P(k)=P(第k+1个人是最优的)+P(第k+2个人是最优的)+...+P(第n个人是最优的)=n1+n1∗k+1k+n1∗k+2k+...+n1∗n−1k=nk∗(k1+k+11+k+21+...+n−11)=nki=k∑n−1i1
转化为规划问题
m
a
x
k
n
∑
i
=
k
n
−
1
1
i
s
.
t
.
k
≤
n
,
k
∈
n
,
k
∈
N
max\frac{k}{n}\sum\limits_{i=k}^{n-1}\frac{1}{i} \\ s.t. k\leq n, k\in n, k\in N
maxnki=k∑n−1i1s.t.k≤n,k∈n,k∈N
在n较小时,非线性规划求整数解
在n很大时,
k
n
∑
i
=
k
n
−
1
1
i
\frac{k}{n}\sum\limits_{i=k}^{n-1}\frac{1}{i}
nki=k∑n−1i1即是y =
y
=
1
x
y = \frac{1}{x}
y=x1 将区间
(
k
n
,
1
)
(\frac{k}{n},1)
(nk,1)分割成宽度为
1
n
\frac{1}{n}
n1的小区间后的黎曼和。
令x =
k
n
\frac{k}{n}
nk , 易知
P
(
k
)
=
k
n
∑
i
=
k
n
−
1
1
i
≈
x
∫
1
x
1
x
d
x
=
−
x
l
n
x
P(k) = \frac{k}{n}\sum\limits_{i=k}^{n-1}\frac{1}{i} \approx x\int_1 ^x \frac{1}{x} dx = -xlnx
P(k)=nki=k∑n−1i1≈x∫1xx1dx=−xlnx
为求P(k)最大值,令P’(k) = -(1 + lnx) = 0, 有x = 1 / e
此时
P
(
k
)
=
−
1
e
l
n
1
e
=
1
e
≈
36.8
%
P(k) = -\frac{1}{e} ln\frac{1}{e} = \frac{1}{e} \approx 36.8\%
P(k)=−e1lne1=e1≈36.8%
3 实验证明
3.1 基本思路
数组里存放 1-100,数字越大代表男生的质量越高,将数组随机打乱。从样本容量为 1 开始到 99,在每一个样本容量里,循环执行 10000 次算法,用计数器来计数选到最大数字的次数。
核心算法: 记录随机数组中最大的数和指定样本容量中最大的数,将备选区间里的数字和样本 容量最大的数字比较(备选区间按照顺序比较)。如果备选区间内的数字比样本容量中最大的数字大,则选择该数字。如果一直比样本容量中最大的数字小,则往后顺延。用计数器记录成功选到最 优秀数字的个数。
3.2 实验代码
//
// main.cpp
// 最优停止问题
//
// Created by python on 2020/10/9.
// Copyright © 2020 SSDF. All rights reserved.
//
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include<ctime>
#include <string>
using namespace std;
int main(int argc, const char * argv[]) {
srand((unsigned)time(NULL));
//int demo = 1;
//int chance[100];
//int *temp = new int[1000];
//设定样本容量
int demoarray[100];
vector<int> vs;
for(int j=0;j<100;j++){
vs.push_back(j+1);//将1-100放入vs
}
for(int demo = 1;demo<100;demo++){
int count = 0;
for(int i = 0;i<10000;i++){
//打乱顺序
random_shuffle(vs.begin(),vs.end());
//取出样本容量中最大的数
int *maxdemo = max_element(vs.begin(),vs[demo]);
// cout<<"maxdemo"<<*maxdemo<<endl;
//比较算法
int tempfigure;
for(int j = demo;j<100;j++){
tempfigure = vs[j];
if(tempfigure >= *maxdemo){
if(tempfigure == 100){
count++;
}
break;
}
if(tempfigure == 100){
count++;
break;
}
}
}
demoarray[demo-1] = count;
// cout<<"count:"<<count<<endl;
//cout<<count/1000.0<<endl;
//delete [] temp;
}
for(int i = 0;i<100;i++){
cout<<demoarray[i]<<" ";
}
return 0;
}
3.3 实验结果
代码执行结果:
数据可视化:
由实验可知,当样本容量的数量在大约 37 附近时,得到的女神找到真爱的概率是最大的,其数值接近 37%。
4 结论
根据理论和代码实验证明,36.8% 是最优的采样空间比例. 并且,通过数学理论推导证明,当样 本容量足够大时,选取 36.8% 作为采样空间,得到最优的概率也是最大的,为 36.8%。
将此结论应用于女生的爱情选择中,我们可以知道,若女生一生中要谈 n 段恋爱,那么选取 n * 36.8% 个男生作为她的采样空间,找到真命天子的概率,是最大的。
5 参考资料
1.https://blog.csdn.net/hildahuang/article/details/8099202 秘书问题
2.https://www.bilibili.com/video/BV1uJ411D7AW?t=308 37% 法则