ToolAct工具行动

抛硬币

在线模拟抛硬币,随机生成正面或反面

HEADS
TAILS

什么是抛硬币工具?

抛硬币工具模拟只有两种结果的随机选择:正面或反面。它适合处理低风险、两边都能接受的小决定,比如谁先开始、先评审哪份稿子、走哪条路线、游戏里谁先手等。在线抛硬币的优势是方便、结果清晰,并能记录最近几次结果、连续次数和正反面比例。公平硬币在大量次数下会接近 50/50,但少量样本出现连续正面或反面很正常,这属于概率波动。这个工具适合日常决策、课堂概率演示和轻量游戏,不适合正式抽奖、法律决定、奖品发放或需要身份校验的场景。

使用方法

使用方法

  1. 点击「抛硬币」按钮开始
  2. 查看硬币翻转动画,等待结果出现
  3. 查看结果(正面或反面)
  4. 历史记录自动统计正反面次数及占比
  5. 点击「清除历史」重置所有统计数据

随机性说明

  • 结果仅适用于日常决策参考,浏览器随机数可用于娱乐,但不可用于博彩、安全场景或正式抽签。
  • 若多人依赖此结果,开始前应约定是否参考历史记录或重复抛掷。

使用场景

做一个可见的二选一决定点击或轻触硬币即可获得正面或反面结果,附带动画和音效。适合课堂分组、会议顺序、游戏回合以及双方都能接受的小型平局裁决。页面是独立的浏览器活动,无需注册账号、安装应用或登录即可开始投掷。
追踪连续投掷是否均衡页面记录投掷历史,统计正反面次数和百分比,计算当前连击和最长连击,让多次投掷比单次隐藏的随机调用更加透明。短期内连续出现某一面是正常方差,而非硬币故障,累计计数器是如实反映实际情况的最佳方式。连击字段在每次投掷后更新,方便判断某个连击是否主导了当前轮次,还是正在回归 50/50。
决策场景变化时重置会话在新一局游戏、新一组人或新的决策开始前清除历史,避免旧结果影响显示的百分比和连击。浏览器使用 crypto.getRandomValues 作为随机源而非 Math.random,这使得每次投掷结果适合用于公平的课堂抽签和小型竞赛。
在课堂演示中运行连击实验在学生面前投掷 30 或 50 次,观察正反面比例逐渐趋近 50/50,利用实时连击计数器说明短期内连续出现某一面是正常方差而非偏差。从统计学角度检测一枚真正有偏的硬币大约需要一万次试验;五十次的课堂样本足以讲清概念,但永远不足以判定一枚硬币不公平。
将投掷历史作为可见的审计记录在小型竞赛、抽奖或团队选择中保留屏幕上的时间戳和结果日志,让参与者看到完整的投掷序列和累计计数,减少事后对结果的争议。审计日志仅存在于当前标签页,关闭页面前导出可见历史是最简单的留档方式,截图即可作为友好团体决策的凭据。

技术原理

每次抛掷从 crypto.getRandomValues(new Uint8Array(1)) 中提取一个字节,测试其最低位:0 对应反面,1 对应正面。WHATWG Web Cryptography 规范要求 Web Crypto API 从加密安全的伪随机数生成器(CSPRNG)获取随机字节,该生成器通常由操作系统的熵池支持(Linux 上的 getrandom,Windows 上的 CryptGenRandom/BCryptGenRandom,macOS/iOS 上的 SecRandomCopyBytes)。Math.random() 被明确定义为非加密级,返回来自未指定算法的 53 位双精度浮点数(V8 中使用 xorshift128+),从少量输出样本即可观察到偏差和可预测性,因此本工具避免使用它进行每次抛掷的决策。 根据强大数定律,随着试验次数 N 的增加,正面的经验比例会收敛到 0.5,但对于有限的 N,二项分布 Bin(N, 0.5) 的方差为 N × 0.25,标准差为 0.5 × √N。对于 N = 100,95% 的置信区间为 50 ± 10,因此观察到 60/40 的分布完全在正常方差范围内,并非随机数生成器存在偏差的证据。连续出现遵循几何分布:在 N 次抛掷中某处出现至少 k 次连续正面的概率约为 1 - (1 - 0.5^k)^(N-k+1),这意味着 100 次抛掷中出现连续 6 次正面的概率约为 17%——同样属于正常现象,并非异常。 硬币动画由 requestAnimationFrame 驱动,与浏览器重绘周期同步(通常为 60 Hz,每帧 16.67 毫秒,120 Hz 显示器上更高),历史记录持久化到 localStorage,连续计数器在同一源的页面刷新后仍然有效。对于真正有偏的物理硬币,统计学上有意义的检测大约需要 10,000 次试验才能以 95% 的置信度检测出 1% 的偏差;本工具的 CSPRNG 源消除了数字抛掷的这一问题。对于高风险的抽奖或具有法律效力的抽签,建议使用可审计的第三方 RNG 服务或经认证的硬件 RNG,因为浏览器端随机性不会留下可外部验证的记录。

  • crypto.getRandomValues 从 CSPRNG 填充 Uint8Array;Math.random 不是加密级的,可以被预测。
  • 决策规则:byte & 1,将位 0 映射为反面,位 1 映射为正面(单个位上均匀分布 50/50)。
  • Bin(N, 0.5) 的方差为 0.25 × N;100 次抛掷中 60/40 的分布完全在 ±2σ 的正常方差范围内。
  • 以 95% 的置信度检测 1% 偏差的物理硬币需要约 10,000 次试验,远超课堂样本量。
  • 动画由 requestAnimationFrame 驱动,与显示器刷新频率同步(通常每帧 16.67 毫秒)。
  • 连续记录和历史通过 window.localStorage 持久化,仅限当前源有效。
  • 浏览器端随机性不会留下可外部审计的记录;正式抽签请使用经认证的 RNG 服务。

示例

10 次抛掷序列(单次记录)

第 1 次  -> 正面
第 2 次  -> 反面
第 3 次  -> 反面
第 4 次  -> 正面
第 5 次  -> 正面
第 6 次  -> 正面(连续:3 次)
第 7 次  -> 反面
第 8 次  -> 正面
第 9 次  -> 反面
第 10 次 -> 反面
合计:正面 5(50%),反面 5(50%)

100 次抛掷统计(典型一轮)

总抛掷次数  :100
正面次数    :52  (52%)
反面次数    :48  (48%)
最长正面连胜:6
最长反面连胜:5
观察        :样本量小时,结果很少正好是 50/50。

三局两胜 —— 决定谁买单

A 选正面,B 选反面。
第 1 局:正面 -> A 胜
第 2 局:反面 -> B 胜
第 3 局:正面 -> A 胜(最终:A 2 - B 1)
B 买单。

课堂概率演示(50 次)

10 次后  :正 7  反 3   (70% / 30%)
25 次后  :正 14 反 11  (56% / 44%)
50 次后  :正 26 反 24  (52% / 48%)
规律:随着样本量增大,比例会向 50/50 收敛。

常见问题

抛硬币真的是随机的吗?

是的。页面使用 Web Crypto API 中的 crypto.getRandomValues,其种子来自操作系统的密码学随机源。每一次抛掷都相互独立——之前的结果对下一次没有任何影响。刷新页面也不会重置随机性。

为什么我连续抛出了 5 次正面?

随机并不意味着「正反交替均匀出现」。连续 5 次同一面的概率是 1/16 ≈ 6.3%——少见但并不罕见。在真正的随机序列中,长连击是正常现象;恰好完美交替的序列反而是人为偏差的迹象,而不是随机的体现。

每次抛掷的概率真的是 50/50 吗?

完全是。真实硬币会有微小的物理偏差(朝上的一面落地时朝上的概率会稍高一点),但计算机模拟器没有这种偏差——两面的概率都是精确的 50.000…%。用它来公平地决出胜负完全没问题。

用它来做集体决策公平吗?

数学上是公平的。不过从社交角度看,「要不要抛」以及「抛完后能不能反悔」这两个环节,比抛硬币本身更重要。在抛之前先约定好——结果一旦出来,大家都得认。

可以查看一系列抛掷的统计数据吗?

页面每次抛一枚硬币,并在当前会话中跟踪抛掷历史、正反面次数、百分比、当前连击和最长连击。这些统计数据让你可以总览所有抛掷情况。关闭标签页或点击「清空历史」会重置数据。

我的抛掷结果会被保存吗?

近期的抛掷记录会保留在你当前的浏览器标签页中。关闭标签页通常就会清除;某些版本会保存到 localStorage。任何数据都不会上传或与他人共享。

可以用它做有法律效力的决定吗?

对于无关紧要的选择(谁请客吃饭、谁先来),可以放心使用。任何具有法律效力的事项(监护权、合同、财产分割)都需要有见证的、文档化的实物流程。网页工具事后无法被审计。