何时适可而止?

作者:
系列:头脑风暴

查看该系列所有文章

最近看到一个有趣的问题:

我们可以连续抛一枚均匀的硬币,并且随时可停下,在停下后可获得的回报为(正面出现次数/抛硬币的次数)。如果希望获得的回报越大越好,我们应该采取什么样的停止策略?

在第一次抛硬币时,如果出现正面时立即停止,此时获得一个最大的回报 1 ,如果出现反面,则应该选择继续抛。假设前 \( n\) 次抛硬币出现了 \( k\) 次正面时最后能获取的期望回报值为 \( f(n, k)\) ,利用动态规划的思想容易列出方程

$$f(n, k) = \max ( \frac{k}{n}, \frac{f(n+1, k)+f(n+1, k+1)}{2})$$

但要解上面的方程可不是那么容易。事实上,它们的精确值还没有人知道。注意到由于一维随机游走的常返性,对任意的 \( n\)\( k\) 都有 \( f(n,k)\geq 0.5\) 。利用这个边界条件可以求出一些近似解,我用下面的 Matlab 跑了一下:

N = 100000;
f = max(0, 0:1/N:1);
for n = N-1:-1:0
    f(1:n+1) = max((0:n)/n, (f(1:(n+1))+f(2:(n+2)))/2);
end

f = f(1);

将边界设为第 100000 枚硬币,算出来从最开始抛时的期望回报大约为 0.79289。由于我的破计算机速度以及 Matlab 的效率问题,我这里很难再提高它的精确性,但 这里有人 将边界提高到了 67108864 ,计算出来的结果为 0.79295350640770。

如果只想知道该在什么时候停止呢?精确的规则也没人知道, Larry A. Shepp 在论文 Explicit solutions to some problems of optimal stopping 中证明了抛的硬币次数 \( n\) 足够多时,应该等到正面数为 \( (0.83992\sqrt{n}+n)/2\) 时停止。

这个问题,和以前的 最佳约会策略 一样,都是说如何基于当前的已知信息做决策,是在现实生活中不断遇到的,比如在赌场赌博,到底赌到什么时候该收手,上面答案可做一点参考。

Q. E. D.

系列: 头脑风暴 »
数学 » 头脑风暴
发信人: GGGGDDDDK (忠贾诩发动乱武,反华佗没法急救别人了), 信区: SanGuoSha
标   题: 据说此题是入职腾讯游戏策划部门一道题 zz
发信站: 水木社区 (Mon Sep 20 11:10:40 2010), 站内
在 MIT BBS 上看到一个有趣的题目
过于集中持股风险较大是投资界的常识,俗话说不要把鸡蛋放在一个篮子里。在实际投资中中国的公募基金就有严格的 10%的个股持仓上限。