摇骰子 — 1 到 9 颗 3D 骰子模拟器
摇骰子模拟器一次掷出 1 到 9 颗标准六面骰,默认 3 颗,用立体翻滚动画和撞击音效还原掷骰过程,并给出每颗的点数与总和。设定骰子数量、音效开关与音量,点「摇骰子」、点骰台下的「摇一摇」或按空格键即可;数量只接受 1 到 9 的整数,越界会自动钳制。点数由 crypto.getRandomValues 配合拒绝采样产生,六个面严格等概率,而且结果在动画开始前就已抽定——3D 翻滚只负责把对应的面转到正前方,不会因为停在哪里而改变结果。结果区按编号给出骰台、每颗点数、总和与本轮统计,骰台可一键切到全屏,还会标出点数和的范围、期望值与最常见的和;参考区列出相对面和为 7 的对照表和 1 到 9 颗的组合数。需要说明的是,这不是物理碰撞模拟,撞击声由 Web Audio 实时合成,浏览器自动播放策略要求首次点击之后才会出声;设备不支持 3D 变换或 Web Audio 时会降级为平面点数卡或静音,点数结果不受影响。所有计算都在本机完成,最近十次记录只保存在这个浏览器里。
可选 1 到 9 颗,默认 3 颗;越界自动钳制
计算结果
还没有摇过。点上面的「摇骰子」开始,骰子会先抽定点数再翻滚到对应的面。
次数按实际抽到的点数统计,与动画停在哪个面无关。
- 和的范围3 – 18
- 期望值10.5
- 最常见的和10 / 11
- 相对面1↔6 · 2↔5 · 3↔4
相对两面点数和恒为 7。点数和不是均匀分布,颗数越多越集中在期望值附近。
暂无记录。摇一次之后会出现在这里。
骰子参考数据
六面点数与相对面
标准骰的相对两面点数和恒为 7。这个约定让六个面与六组最终角度一一对应;1、2、3 三面绕公共顶点的手性两种都存在,本工具固定其中一种。
| 面值 | 相对面 |
|---|---|
| 1 | 6 |
| 2 | 5 |
| 3 | 4 |
1 到 9 颗的点数和
下表按组合数精确计算。颗数为奇数时中央有两个并列的最常见的和;单颗时六个点数等概率,没有唯一众数。
| 骰子数 | 和的范围 | 期望值 | 最常见的和 |
|---|---|---|---|
| 1 | 1 – 6 | 3.5 | 各面等概率 |
| 2 | 2 – 12 | 7 | 7 |
| 3 | 3 – 18 | 10.5 | 10 / 11 |
| 4 | 4 – 24 | 14 | 14 |
| 5 | 5 – 30 | 17.5 | 17 / 18 |
| 6 | 6 – 36 | 21 | 21 |
| 7 | 7 – 42 | 24.5 | 24 / 25 |
| 8 | 8 – 48 | 28 | 28 |
| 9 | 9 – 54 | 31.5 | 31 / 32 |
随机方法与资料来源
每颗点数由 crypto.getRandomValues 产生 32 位无符号整数,再用拒绝采样把大于等于 4294967292 的值丢弃重抽,最后对 6 取余加一。2 的 32 次方除以 6 余 4,直接取余会带来约亿分之二的模偏;丢弃这四个值后六面严格等概率。下表中的史实与方法可核对:
操作说明
- 把骰子数量调到 1 到 9 之间的整数,默认是 3 颗;顺手确认音效开关与音量。数量只接受这个范围内的整数,超出会自动钳到边界;若设备不支持 transform-style: preserve-3d 或 Web Audio,页面会改用平面点数卡或静音提示,点数结果不变。
- 点「摇骰子」或骰台下的「摇一摇」按钮,也可以让焦点停在页面空白处按空格键、按 R 键。浏览器自动播放策略要求音频上下文必须在这一次用户手势里创建,所以第一次点击之前不会出声;按钮在翻滚期间会禁用,避免重复触发。
- 等骰子依次落定,读 01 区里的立体骰台、每颗点数与总和,再看 02 区的本轮统计和 03 区的点数和范围、期望与最常见的和。点数在动画开始前已抽定,落定后还会按最终角度反查可见面校验一次。想把骰台放到大屏上看,点骰台下方的「全屏」,按 Esc 或点右上角「退出全屏」回到页面。
- 需要留档时点「复制结果」取得一行文本,或点「下载图片」把点数与总和导出成 PNG;04 区保留最近十次记录,可逐条复制或一次清空。改变骰子数量会清空当前这一轮结果,但不会删掉历史记录。
常见问题解答
结果公平吗?为什么要做拒绝采样?
六面严格等概率。crypto.getRandomValues 返回的 32 位整数共有 2 的 32 次方个取值,6 不能整除这个数,直接取余会让 1 到 4 略微偏高;本工具丢弃末尾四个越界值并重抽,消除这点模偏。若浏览器连 CSPRNG 都不可用,工具会明确报错并停止摇掷,而不是悄悄改用普通伪随机数。
关掉动画或音效,点数会变吗?
不会。点数在翻滚开始之前就已抽定,3D 动画与撞击声只是表现层。系统开启「减少动态效果」时会直接跳到最终面,不支持 3D 变换时会显示平面点数卡,关闭音效或把音量调到 0 也只影响声音,这些都不会改变已抽出的点数与总和。
为什么第一次点击没有声音?怎么调音量?
浏览器的自动播放策略要求 AudioContext 在用户手势中创建或恢复,所以第一次点「摇骰子」时才解锁音频,之后翻滚与落定音都会正常播放。输入卡通栏里有音效开关和 0 到 100 的音量滑块,默认开启、默认 60;若设备没有 Web Audio,开关会置灰并给出说明。
为什么点数和不是均匀分布?三颗时哪个和最常见?
因为不同和对应的组合数差别很大。三颗骰共有 216 种等可能结果,10 与 11 各有 27 种组合并列最多,而 3 和 18 各只有一种。参考区列出了 1 到 9 颗的取值范围、期望 3.5 倍颗数与最常见的和,可以直接对照本轮结果。
摇掷记录会上传吗?存在哪里、怎么清除?
不会上传。数量、音效开关、音量以及最近十次记录分别写在本浏览器的 locStore 里,两个键都是本工具独立新建的,不会读写或修改其他工具的存储。记录区有「清空记录」按钮,清除浏览器站点数据也会一并移除。
概念
把「看起来在转」当成「公平」的证据是常见误解,两者没有必然联系。公平与否只能看抽样分布:crypto.getRandomValues 的 32 位整数有 2 的 32 次方个取值,6 不能整除它,直接取余会让 1 到 4 比 5 和 6 高出约亿分之二;拒绝采样丢掉末尾四个越界值重抽,六面才严格等概率。另一个误解是「动画停在哪个面就读哪个面」:本工具先抽定点数,再反解出把该面转到正前方的角度,翻滚只呈现结果,落定后还会按最终角度反查可见面校验。标准骰的相对两面点数和恒为 7,即 1 与 6、2 与 5、3 与 4 相对,这是六面与六组目标角度一一对应的前提;1、2、3 三面绕公共顶点的两种手性都真实存在,本工具固定其一。点数和并不均匀:三颗时 10 和 11 最常见,各 27 种组合,3 与 18 各一种;颗数越多,越集中在 3.5 倍颗数附近。声音也要澄清:这里没有音频文件,撞击声是白噪声经过带通滤波与衰减包络合成的短脉冲,浏览器要求音频上下文在用户手势中创建,首次点击前不会出声。随机、绘制与合成都发生在本机,记录不会上传。
历史与由来
骰子是人类最早留下的随机器具之一。考古工作者在两河流域与印度河流域的遗址里发现过距今数千年的骰形器物,材质有陶、石、骨与象牙,形状并不统一,四面体、长方体与不规则多面体都出现过;其中一些器物的点数刻法与现代六面骰差别很大,研究者对它们究竟用于占卜、游戏还是计数仍有分歧。六面立方体后来成为主流,与它容易加工、各面朝上的机会接近、也便于约定规则有关;今天通行的相对面点数和为 7 只是一种约定,另一套手性相反的排法同样存在,并没有物理上的必然。真正把掷骰子变成可计算对象的是十七世纪中叶的概率论。1654 年帕斯卡与费马围绕赌注分配问题通信,讨论一局未结束的赌局该如何按已完成的局数公平分赌本,两人用组合计数给出了等价但思路不同的解法;1657 年惠更斯据此写成《论赌博中的计算》,通常被视为概率论第一本正式出版物。此后伯努利、棣莫弗与拉普拉斯逐步建立大数规律、正态分布与概率的系统表述,骰子也从赌桌走进教科书,成为讲解样本空间、独立事件与期望值时最省事的教具。今天在计算机里掷骰,继承的仍然是这套组合计数,只是抽样随机源换成了密码学随机数发生器,而公平性还得靠拒绝采样之类的手段显式保证,并不会因为动画更逼真就自动成立。
相关关键词
纠错反馈
如果发现工具问题或有任何建议,欢迎通过邮箱联系我们,我们会认真查看每一条反馈。
