一千个人抛硬币
正面多一半, 反面少四成. 平均每抛一次多 5%, 可是一千个人里, 大多数人越抛越少.
昨天刷 B 站, 读到一个视频的简介. 视频没有旁白, 简介里只有几个数字: 抛硬币, 正面钱多 50%, 反面少 40%; 平均每局 +5%; 1000 个人各玩 100 局, 所有人的钱加起来从 10 万变成 280 万, 可是 87% 的人比开始时少.
前两个数字和后两个数字, 看起来说的是两件相反的事. 我想自己算一遍.
规则
每个人开始时有 100. 每一次, 每个人各自抛一枚硬币: 正面, 手里的钱乘 1.5; 反面, 乘 0.6. 输赢都带到下一次. 一千个人互不相干.
上面的图里, 纵轴是对数, 每一格是 10 倍. 淡淡的线是其中 80 个人, 统计用的是全部一千个人. 在图上点一下, 就换成跟着离那一点最近的那个人看.
我算出来的
一次的平均是 (1.5 + 0.6) / 2 = 1.05, 每抛一次多 5%. 抛 100 次, 期望是 100 × 1.05¹⁰⁰, 约 13150.
但一个人抛很多次, 正面和反面大致各占一半. 一次正面加一次反面, 是 1.5 × 0.6 = 0.9, 两次少一成. 摊到每一次, 是 √0.9 ≈ 0.949, 每抛一次少 5%. 抛 100 次, 典型的一个人剩 100 × 0.9⁵⁰, 约 0.52.
同一组规则, 平均每次多 5%, 典型的人每次少 5%.
要不亏, 100 次里至少要 56 次正面. 按二项分布, 正面少于 56 次的概率是 86.4%. 视频简介说的 87%, 是 1000 个人模拟出来的, 对得上.
平均是谁的钱
我在电脑上跑了三次. 抛到第 100 次时, 所有人的钱加起来, 三次分别是 4860 万, 899 万和 3990 万. 都比简介里的 280 万多, 而且三次之间差了好几倍. 原因在下一个数字里: 第 100 次时, 最富的那一个人, 三次分别占了所有钱的 96%, 83% 和 47%.
平均在涨, 可是撑起平均的, 只是极少数运气特别好的人, 有时候就是一个人.
再往下抛, 这几个人也撑不住了. 期望是一条直线, 永远在涨; 但三次模拟里, 一千个人的总数分别在第 542, 160, 238 次见顶, 然后往下掉. 抛到第 1000 次, 三次的总数分别是 159, 1.35×10⁻⁵ 和 1.63. 开始时是 10 万.
这也能算. 抛 1000 次, 至少要 558 次正面才不亏, 一个人做到的概率约是万分之 1.4. 一千个人里有一个人做到的概率约 13%. 大多数时候, 连最幸运的那个人都在亏. 那个 159, 就是一个人正好抛出 558 次正面: 100 × 1.5⁵⁵⁸ × 0.6⁴⁴² ≈ 159. 他是一千个人里唯一没亏的, 只多了 59.
期望说 "平均每次多 5%", 它说的是无穷多个人. 一千个人不是无穷多个, 有限的人群里, 总会轮到连最幸运的人都不够幸运的那一天.
Ole Peters 在 2019 年的一篇论文里用的就是这个硬币游戏. 他有一句话我很喜欢: 一个非遍历的量, 它的期望值在物理上对应的, 是许多个体把钱汇在一起再平分. 平均是一个池子. 如果一千个人每抛一次都把钱汇在一起分, 每个人都会按期望变富, 那条直线才是真的. 但没有人在分, 每个人只有自己那一条线.
怎么做的
每个人只需要记一个数: 到现在为止抛出了几次正面. 抛了 t 次, 正面 h 次, 手里就是 100 × 1.5ʰ × 0.6ᵗ⁻ʰ. 钱只由 h 决定, 而且 h 越大钱越多, 所以每抛完一次, 只要数一数每个 h 有几个人, 就能直接读出中位数, 最富的人, 比开始时少的人数, 不用对钱排序.
钱用常用对数存. 抛 1000 次, 全是正面是 10¹⁷⁸, 全是反面是 10⁻²²⁰, 直接存会溢出.
计数器下面那行 "精确地算" 的概率, 是对二项分布求和, 每一次抛完都重新算. 我用 node 跑过一遍: 三个随机种子下, 按 h 计数得到的统计量和对所有人的钱直接排序的结果完全一样; 100 次时的门槛 56 和概率 86.4%, 和我单独用 Python 算的一样.
每次 "重来" 都换一个随机种子, 所以页面上的数字和正文里我跑的那三次不会一样.
参考
- Peters, O. (2019). The ergodicity problem in economics. Nature Physics, 15, 1216-1221. doi:10.1038/s41567-019-0732-0. 硬币游戏 (正面赢当前财富的 50%, 反面输 40%) 是论文的第 2 式. "期望值对应汇在一起再平分" 是我从原文 "An expectation value of a non-ergodic observable physically corresponds to pooling and sharing among many entities" 转述的. 读的是 一份带批注的 PDF, 只用了原文, 没用批注.
- B 站视频 BV1fLHP6PEdS 的简介. 视频没有旁白, 我只读到简介里的数字 (+50%, −40%, 平均 +5%, 1000 人 100 局, 10 万到 280 万, 87%).
- 1.05¹⁰⁰, 0.9⁵⁰, 门槛 56 和 558, 86.4%, 万分之 1.4, 13%, 以及三次模拟的数字, 都是我自己算的. 三次模拟用 Python 的随机数, 种子是 1, 2, 3.
勘误
暂无.