抛硬币模拟器
一键运行从单次到 10,000 次的抛硬币实验。偏置滑块可把正面概率设在 1% 到 99% 之间,模拟有偏硬币和公平硬币一样简单。每次运行结束后,你会看到正面和反面的次数、观测比率与期望正面数(次数 × 概率)的并排对比,以及每一面的最长连续记录;不超过 1,000 次的运行还会渲染完整的 H/T 序列,让你直观查看连续段并复制出来。 抛掷由浏览器的 Math.random() 在客户端生成——这是一个快速的伪随机数生成器,用于模拟、课堂演示和培养概率直觉在统计上完全够用,但不适合抽奖等存在对抗动机的场景。这些统计量很好地展示了概率的实际运作:随着样本增大,比率会向滑块设定值收敛(大数定律),而最长连续却大约按抛掷次数的 log2 持续增长——真正的随机远比多数人想象的更“连”。
—
基于 Math.random() — 用于统计/演示足够,不适合加密抽签。
使用方法
- 输入要模拟的抛掷次数(1 到 10,000,超出范围会被自动修正)。
- 用偏置滑块设置正面概率;公平硬币保持 50% 即可。
- 点击 Flip,一次性运行整个实验。
- 把观测到的正面次数和比率与期望正面数(次数 × 概率)进行比较。
- 若运行不超过 1,000 次,可在统计下方查看或复制完整的 H/T 序列。
常见问题
- 公平硬币为什么会出现这么长的连续?
- 在公平的 N 次抛掷中,某一面的最长连续通常在 log2(N) 附近:100 次约 7 连,1,000 次出现 10 连以上也很常见。长连续是符合预期的现象,不是硬币被做手脚的证据——人为编造的“随机”序列反而正因为回避这类连续而容易被识破。
- 正面比率应该离滑块值多近?
- 正面次数服从二项分布,标准差为 √(n·p·(1−p))。对公平硬币而言,100 次抛掷偏差 ±5 个百分点属正常,而 10,000 次时只有约 ±0.5 个百分点——加大样本量,你会看到比率不断收紧。
- 这是密码学安全的随机数吗?
- 不是。抛掷来自快速伪随机生成器 Math.random()。它用于统计、演示和游戏没问题,但抽奖、安全决策或任何有人可能从偏差中获利的场景,请改用密码学安全或可验证的随机源。
- 为什么大规模运行不显示序列?
- 为保持页面流畅,原始 H/T 字符串只在不超过 1,000 次的运行中渲染。但统计始终基于完整运行计算,因此 10,000 次的实验仍会报告精确的次数和最长连续。
- 可以用它做单次决定性抛掷吗?
- 可以——把次数设为 1 再点击。每次点击都是独立实验:之前的结果对下一次没有任何影响,正面连出几次并不意味着反面“该出了”(那是赌徒谬误)。
相关工具
随机分布生成器
从均匀、正态、指数、泊松、伯努利或三角分布中生成样本,含直方图、汇总统计和 CSV/JSON 导出。基于 crypto.getRandomValues。
随机 0 0
骰子 & 硬币掷掷器
用密码学随机投掷 d4–d100 多面骰或硬币。
随机 0 0
加权随机抽取器
按自定义权重抽取名字或选项 — 像非均匀抽奖。查看每个选项的真实概率,可选带或不带放回。
随机 0 0
扑克牌发牌器
从恰当洗过的 52 张牌堆(可选大小王)中抽 N 张,带牌堆追踪,避免抽到重复牌。
随机 0 0
密码生成
生成永不离开浏览器的强随机密码。
随机 0 0
随机数生成器
在任意范围内生成密码学级随机数——允许或禁止重复,可选排序。
随机 0 0