当需要百(千,万…)里挑一时,需要权衡最优解和效率,有一个37%原则比较有趣。
整个择优过程分为两个阶段:
- 观望:在前面
k
k
p
p
V
p
V_p
- 选择:从第
k
+
1
k+1
V
i
>
V
p
V_i>V_p
i
i
如果有10000个候选者,遍历10000次的过程中,越往后,找到比前面所有候选者都优秀的候选者的机会越渺茫,此时权衡一下概率和成本,就地抉择也不失为一种好策略,37%原则是这个问题的定量化表示。
总量
n
n
n个候选人拍成一排,设停止观望的位置为
k
k
k,从
k
+
1
k+1
k+1到
n
n
n的遍历比较,假设其中可以找到最有,设他的位置在
i
i
i。
现在来看一下概率的计算:
- 总量
n
n
k
k
1
n
\dfrac{1}{n}
i
i
k
k
k
i
−
1
\dfrac{k}{i-1}
- 在
k
k
i
i
- 求出可能性最大的
k
k
写成式子就是:
P
(
k
)
=
∑
i
=
k
+
1
n
1
n
k
i
−
1
=
k
n
∑
i
=
k
+
1
n
1
i
−
1
P(k)=\sum\limits_{i=k+1}^n\dfrac{1}{n}\dfrac{k}{i-1}=\dfrac{k}{n}\sum\limits_{i=k+1}^n\dfrac{1}{i-1}
P(k)=i=k+1∑nn1i−1k=nki=k+1∑ni−11
为了求极值,用求导的方法,把离散求和式凑成连续的积分(这只是一种技巧,无必然):
P
(
k
)
=
k
n
∫
k
+
1
n
1
i
−
1
d
i
=
k
n
(
ln
(
i
−
1
)
∣
k
+
1
n
)
P(k)=\dfrac{k}{n}\displaystyle\int_{k+1}^n\dfrac{1}{i-1}di=\dfrac{k}{n}(\ln(i-1)|_{k+1}^n)
P(k)=nk∫k+1ni−11di=nk(ln(i−1)∣k+1n)
进一步化简:
P
(
k
)
=
k
n
(
ln
(
n
−
1
k
)
)
=
−
k
n
ln
k
n
−
1
≈
−
k
n
ln
k
n
P(k)=\dfrac{k}{n}(\ln(\dfrac{n-1}{k}))=-\dfrac{k}{n}\ln\dfrac{k}{n-1}\approx-\dfrac{k}{n}\ln\dfrac{k}{n}
P(k)=nk(ln(kn−1))=−nklnn−1k≈−nklnnk
设
x
=
k
n
x=\dfrac{k}{n}
x=nk,则:
P
(
n
x
)
=
−
x
ln
x
P(nx)=-x\ln x
P(nx)=−xlnx
设
f
(
x
)
=
−
x
ln
x
f(x)=-x\ln x
f(x)=−xlnx,对
x
x
x求导:
f
′
(
x
)
=
−
ln
x
−
1
f'(x)=-\ln x-1
f′(x)=−lnx−1
得
x
=
1
e
x=\dfrac{1}{e}
x=e1时,
P
P
P取最大值,此时:
k
=
n
x
=
0.37
n
k=nx=0.37n
k=nx=0.37n
n
n
n为总量,
k
=
0.37
n
k=0.37n
k=0.37n就是
n
n
n的37%,这就是说,
k
k
k达到总量的37%时,放弃观望后见优选择可以找到最优者的成功率最大,这个成功率是多少呢?
有趣的是,将
x
=
1
e
x=\dfrac{1}{e}
x=e1带入
f
(
x
)
f(x)
f(x)后:
P
(
k
)
=
f
(
x
)
=
1
e
≈
0.37
=
37
%
P(k)=f(x)=\dfrac{1}{e}\approx0.37=37\%
P(k)=f(x)=e1≈0.37=37%
成功率最大的停止点在总量的37%处,成功率的值也是37%:
这也正是神奇的数学驻点
e
e
e的又一个表现。
说回37%原则,事实上不光是百里挑一,发生在单向时间序列的人生亦如此,每一个决定都无法回头,同时亦无可能穷尽未来,选择最佳停止观望时机是一个普适问题,类似37%原则的最优停止原则还有很多,值得思考琢磨。
浙江温州皮鞋湿,下雨进水不会胖。
原文链接: https://blog.csdn.net/dog250/article/details/121023711
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/405667
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!