跳到主要内容
CalcMax

抛硬币

范围:1 – 200

范围:0 – 4,294,967,295

结果

7

正面次数

反面次数
3
正面的占比
70.00%
最长连续同一面
3
恰好是这个正反比的概率
11.72%
逐次结果
H, T, H, H, H, T, H, H, T, H

抛硬币做的是把「抛 n 次硬币会怎样」这件事真的跑一遍:填一个次数,这一页就给出硬币正反面各出现多少次、最长连出同一面有几次,以及公平硬币恰好掷出这个正反比的概率是多少。抛出来的结果来自一个带种子的随机发生器,而不是真硬币——所以同一个种子永远给同一串结果,这一点既是种子的意义,也是它的边界。要看的其实不是「哪一面多」,而是最长连出:那是一个人眼从结果串里数不出来的量,也是最容易被读成「硬币有问题」的量。这一页不判断硬币公不公平,它假定公平,然后把公平长什么样摆出来。

公式

正面次数 = 结果串里 H 的个数 · 反面次数 = 次数 − 正面次数 · 最长连出 = 连续相同结果的最长一段 · 劈开概率 = C(n, 正面次数) / 2ⁿ

次数
抛多少次硬币。结果串里每次抛掷对应一个 H 或 T,其余每一个输出都是在这同样的次数上数出来的
种子
从发生器里取哪一串结果。同一个种子永远给同样的正面与同样的反面,所以一次抛掷可以被完完整整地重复;它不改变任何一面出现的可能性
H
正面(heads),等价的两面之一。结果串印 H 与 T 而不是汉字,因为这是数学记号:同一个种子在中文页与英文页必须印出逐字相同的串,翻成汉字就做不到了
T
反面(tails),另一面。公平硬币不记得上一次是什么,所以连出同一面是这一串结果里的巧合,不是硬币在往哪边偏
劈开概率
公平硬币在这么多次抛掷里恰好出现这么多个正面的概率——问的是这一个劈开有多大可能出现,与这一次实际得到的占比是两回事

手边没有硬币却想看看一串抛掷结果时用它,或者手里已经有一串正反面、需要数而不是用眼睛估的时候用它。最长连出是整页里唯一必须靠程序算的量,也是最常被误判的量:两百次抛掷里连出七次同一面是寻常事,不是硬币偏了的证据。劈开概率回答的是旁边那个问题——不是这一次正面占了多少,而是公平硬币有多大可能给出这样一个劈开。这一页不检验硬币是否公平;要检验一串结果像不像随机序列,那是随机性检测的事,不是这一页的事。

算例

  1. 抛十次:七正三反,最长连出三次

    1. 从发生器里取十次结果:H, T, H, H, H, T, H, H, T, H
    2. 数 H:一共 7 个,所以反面是 10 − 7 = 3 个
    3. 占比是 7 / 10 = 70%
    4. 把结果串走一遍找连续相同的最长一段:第 3 到第 5 位是 HHH,最长连出 3 次
    5. 十次公平抛掷里恰好出 7 个正面的概率是 C(10,7) / 2¹⁰ = 120 / 1024 = 11.72%

    把最后两个数并排看,因为这一页最常被读错的就是这一对。70% 是这一次实测出来的占比;11.72% 是公平硬币有多大可能给出「七三开」这样一个劈开。两者互不矛盾,70% 也不是 11.72% 的另一种说法——前者描述这一串,后者描述所有「十次里七个正面」这一类结果。一次抛掷的结果既可以是 70%,又同时是一件只有 11.72% 概率的事,这不是悖论,是「这一次」与「这一类」的区别。

  2. 同样抛十次,换一个种子:五正五反

    1. 种子 7 取到的是另一串:T, T, H, H, H, T, T, T, H, H
    2. 五个正面五个反面,占比 50%
    3. 最长连出仍然是 3——第 6 到第 8 位是 TTT,第 3 到第 5 位是 HHH
    4. 五五开的概率是 C(10,5) / 2¹⁰ = 252 / 1024 = 24.61%

    两次的最长连出都是 3,这在十次抛掷里是常态,不是值得琢磨的巧合。真正动过的是劈开概率:五五开比七三开的两倍还多,因为五个正面在十个位置上能摆出的花样远比七个多。这也是种子为什么是一个字段而不是藏在实现里的细节——同一个页面按两次不该悄悄给出两个不同的答案,而一个值得讨论的结果必须是能重复的。换种子只换这一串,不换任何一面的可能性。

  3. 只抛一次:下界那一格

    1. 取一次结果:H
    2. 一个正面零个反面,占比 1 / 1 = 100%
    3. 连续相同结果的最长一段就是这一次抛掷本身,所以是 1
    4. 一次公平抛掷里恰好出一个正面的概率是 C(1,1) / 2¹ = 1/2,也就是 50%

    一次是这一页接受的最小输入,它把「占比」与「概率」为什么必须是两行说清楚了。一次抛掷必然落在某一面上,于是占比是 100%——这个数对硬币本身什么也没说。劈开概率是 50%,说的是话的那个数是它。抛一次时两行看起来几乎互相矛盾,抛到两百次它们会靠拢,而小样本下这两行之间的差距正是抽样的全部内容。

  4. 抛两百次,出现一次连出九次

    1. 从发生器里取两百次结果——结果串那一行会把它们全印出来
    2. 数正面:95 个,所以反面是 200 − 95 = 105 个
    3. 占比是 95 / 200 = 47.5%,离五五开差 2.5 个百分点
    4. 最长连出是 9——连续九次同一面
    5. 两百次公平抛掷里恰好出 95 个正面的概率约为 4.39%

    值得停下来看的是那个 9。多数人把连出九次读成硬币有问题的证据,而在两百次公平抛掷里它一点也不稀奇——最长连出随着抛掷次数增长,慢,但没有上限。还要看两行是往哪个方向拉的:占比 47.5% 离五五开很近,看着很「正常」,而劈开概率只有 4.39%,因为恰好落在 95 这个数上是一个很窄的目标,尽管它周围那一圈同样长相的结果很多。

局限

这不是真的在抛硬币。每一次都是从带种子的随机发生器里取的,所以这一页给出的是「行为像公平硬币」的一串结果,不是一枚真硬币的记录;而同一个种子永远取到同一串,这既是种子这个字段的意义,也是它的边界。另外三条限制也要说清。第一,这一页不检验硬币是否公平:它假定每一次抛掷正面的概率都是一半,然后报告由此推出的结果,所以一枚真的偏了的硬币在这里也会被当成公平硬币来描述。第二,上限是 200 次,它继承自共用的随机内核的抽取上限,不是为这一页挑的,代价是抛满时结果串会长到折好几行。第三,这一页给出结果但不评价结果——最长连出 9 次、正面占 70%,都只印出来,不对「这算不算反常」发表任何意见,要判断就得拿旁边的劈开概率来比。

常见问题

为什么同一个种子每次都给同一串结果?
因为这些结果来自一个带种子的随机发生器,而不是真硬币,而种子决定从这个发生器的序列里取哪一段。填种子 1 两次,得到的是同样的十个正反面;换成 7,得到的是同样长度但不同的一串。这是有意的:一个每次访问都重掷答案的页面没法核对,结果也没法引用,而这一页背后的自动化测试会失去可比较的对象。它也让种子成为这一页唯一一个不是「数量」的输入——它选的是一串结果,不给任何一面加权,所以没有任何一个种子会让正面更容易出现。
正面占比和劈开概率有什么区别?
占比描述的是你眼前这一次;劈开概率描述的是这个长度的所有抛掷里落在这样一个劈开上的那一部分。抛十次得到七个正面,占比是 70%,而公平硬币十次里恰好出七个正面的概率是 11.72%。两者不是同一件事的两种说法,而且可以朝相反方向走:抛两百次时占比可能稳稳地贴近 50%,劈开概率却不到 5%,因为恰好落在一个具体的数上是个很窄的目标,哪怕它周围那一圈结果长得很像。把占比读成结果,把劈开概率读成「这结果有多稀奇」。
连出九次同一面,是不是说明硬币有问题?
不是,在两百次抛掷里这甚至算不上稀奇。连续相同结果的最长一段会随着次数增长——慢,但没有任何上限——所以长连出正是公平硬币迟早会给出东西。公平硬币不做的事是记忆:连出八个正面之后,第九次仍然是一半对一半,这恰恰是这么长的序列里会出现这种长度的连出的原因。把一段连出当成硬币偏了的证据,等于把序列里唯一一个随长度增长的量当成了常数;把最长连出印成单独一行,正是为了让这个直觉可以被核对,而不是被信任。
为什么最多只能抛 200 次?
因为 200 是共用的随机内核的抽取上限,这一页、骰子页与随机数页用的是同一个内核——这个上限是继承来的,不是在这里挑的,而共用的代价换来的是「一个种子在三页上是同一个意思」。后果是看得见的:抛满 200 次时结果串会长到折好几行,那是上限的直接结果,不是渲染出了毛病。真需要更长的序列,老实的回答是这一页不是合适的工具——你要的是一个程序,而不是一串得用眼睛去数的结果。
为什么计算器下面没有参考表?
因为这一页真正值得列的那张表就是你自己的结果串,而生成参考表的代码看不到你填了什么——它在构建时就跑完了,只能从工具的结构出发,拿不到输入。放一张通用的赔率概率表在面板底下,会看起来像在回答你的问题,其实在回答另一个问题。所以这一页把结果串本身印在面板最后一行,而把参考表留给那些主题真的是一组固定数值、而不是一次抛掷的工具。
H 和 T 是什么意思,为什么不印成汉字?
H 是正面(heads)、T 是反面(tails),按抽出来的顺序一次一个。它们在任何语言下都保持字母,因为这串结果是记号而不是文案:同一串抛掷必须在中英文页面里逐字相同,翻成汉字就做不到;而且翻译过的结果串也没法与它旁边的数字对照着看。这一行的用处是让次数、占比、尤其是最长连出都能被人手核对——最长连出恰恰是没办法用别的方式从结果串里读出来的那一个。

参考资料

相关计算器