使用方法
- 「骰子数量」默认 5,允许 1 到 5 颗;「轮数」默认 3,允许 1 到 10 轮。改数字或按回车立即重开一局。
- 「玩家名单」每行一个名字,2 到 16 行——行数就是玩家数。默认四位:阿澄、小鹿、老周、阿灿。名单框按 Ctrl+Enter(Mac 上 Cmd+Enter)重算。
- 「随机种子」默认 888,可写任意文字;按字符码累加折叠成 31 位整数,同一种子整局逐字复现。
- 结果区首行是概要(种子折叠值、骰子数、轮数与玩家数),随后按轮次分段列出每轮的名次、玩家、各颗点数、总和与标记。
- 名次是竞赛排名:同总分并列同名次,例如两人并列第 3 时下一个名次直接是第 5,不会用序号强行分高下。
- 每轮的最大值标「最大」、最小值标「最小」;最大值并列时标「并列最大」,最小值并列时标「并列最小」。
- 明细表默认显示 12 行,点「加载更多」展开全部;「导出 CSV」存成带字节序标记的文件,Excel 打开不乱码。
- 「复制结果」复制整段文本;「复制明细表」把当前表格按 TSV 复制,粘进表格软件列位不乱。
- 骰子数写成 6、轮数写成 0、名单只剩 1 行或超过 16 行、种子留空,都会给出针对该项的具体提示,不拿上一局冒充本次输出。
这个摇骰子比大小能解决什么问题
第一类是酒桌上「没带骰子」。规则说好的吹牛、比大小、猜点数,道具不在场整局就垮了。本页按名单逐人投掷,默认种子 888 下第 1 轮老周 19 点最大、阿澄与小鹿 13 点并列最小,谁大谁小一眼可读,还能把结果整段复制到群里存档。
第二类是「同点数算谁赢」扯皮。线下最吵的就是两个人甩出一样的总和,各说各的理。本页把口径钉死:同总分并列同名次,标记列直接写「并列最大」或「并列最小」,不存在「先算后算」的暗箱。
第三类是复盘与公证。口算五颗骰子的总和容易看错行,尤其喝了酒之后。页面逐颗列出点数再给总和,两列可以互相对账;附带的期望值说明这一轮「正常该多大」——5 颗的期望是 17.5,甩出 25 属于明显偏高。
第四类是教学演示概率。把骰子数从 5 改成 2,总和分布立刻收窄成对称的三角形:7 出现 6 次占 16.6667%,2 和 12 各只有 1 次占 2.7778%。同页还能演示 5 颗全同只有 0.07716% 的概率,比大多数人凭感觉估计的低得多。
这个工具在本站也叫「摇骰子比大小」,一次投掷只消耗一颗骰子对应的一次随机数推进,整局的随机流消耗固定为轮数 × 玩家数 × 骰子数,所以种子不仅能复现,还能精确预测要掷多少次。
计算原理与变量说明
单颗骰子的期望与方差。点数 1 到 6 等概,期望 E = (1+2+3+4+5+6)/6 = 3.5,方差 Var = Σ(x−3.5)²/6 = 35/12 ≈ 2.916667。n 颗独立骰子的总和期望 = 3.5n、方差 = 35n/12:5 颗时期望 17.5、方差 14.583333、标准差 √14.583333 = 3.818813。总和范围是 n 到 6n,即 1 颗 1~6、5 颗 5~30。
为什么 7 是两颗骰子最可能的和。两颗共有 36 个等概结果,和为 7 的有 (1,6)、(2,5)、(3,4)、(4,3)、(5,2)、(6,1) 六种,占 6/36 = 16.6667%;往两边递减,2 和 12 各只有 (1,1) 与 (6,6) 一种,占 2.7778%。总数守恒:1+2+3+4+5+6+5+4+3+2+1 = 36。
五条的概率。5 颗全部相同的点数有 6 种(全 1 到全 6),总结果 6⁵ = 7776 种,概率 = 6/7776 = 0.0007716049,即 0.07716%。这个数常被高估:一千局里大约出现 0.77 次,连吹两局都碰不上才是常态。
并列处理是技术内核。排名用竞赛排名法(1、2、2、4):先按总和降序排,相邻同值共享名次,后续名次跳过已占用数。本页采用「并列展示」口径——同总分并列同名次,不重掷、不加赛;标记列在最大值并列时写「并列最大」,最小值并列时写「并列最小」,全员同分时写「全部并列」。另一种常见口径是「并列时下一轮重掷」,只让并列者再投一次,部分酒桌规则用它;本页不采用,因为它会让每轮的随机数消耗随并列情况变化,破坏「种子相同整局复现」的承诺。
轮次怎么推进。一轮之内,按名单自上而下的顺序给每位玩家投一次,每人骰子数颗;本页每轮覆盖全部玩家,所以一局就是若干完整轮的堆叠。如果只让一部分人先投——每轮可投人数为 k、玩家总数为 N——覆盖全员需要 ceil(N/k) 轮,k = N 时就是本页的一轮制。
随机源与站点口径一致。种子按 s=(s+str.charCodeAt(i))&0x7fffffff 折叠成 31 位整数,默认种子 888 三个字符码 56×3 累加得 168。每颗骰子推进一次 s=(Math.imul(s,1103515245)+12345)&0x7fffffff,取点数用 Math.floor(s/2147483647*6)%6+1:先除以 2³¹−1 把状态归一化到 [0,1),乘 6 后向下取整得到 0 到 5,再加 1 变成 1 到 6。不写 s%6,因为 LCG 低位比特周期短,取余会让点数出现成组规律。乘法必须用 Math.imul,否则超过 2⁵³ 的中间结果在双精度下丢低位,换浏览器序列就对不上。
完整示例(数值仅作演示)
默认示例:5 颗骰子、3 轮、4 位玩家(阿澄、小鹿、老周、阿灿)、种子 888。折叠值 168,整局消耗 3 × 4 × 5 = 60 次投掷。第 1 轮:老周 4 4 5 1 5 得 19 点居首,阿灿 1 5 6 3 1 得 16 点第二,阿澄与小鹿同得 13 点并列第 3、并列为最小。第 2 轮:阿澄与老周同得 21 点并列第 1、并列为最大,阿灿 13 点第三,小鹿 12 点最小。第 3 轮:阿灿 21 点最大,阿澄 20 点、老周 19 点、小鹿 16 点最小依次排开。
对照期望看这批的手气:5 颗期望 17.5、标准差 3.818813,所以 12 点(第 2 轮小鹿)在均值下方约 1.44 个标准差,21 点在上方约 0.92 个标准差,都属正常波动;本局总和范围 12 到 21,60 次投掷里出现 2 处并列。
换种子看差异。种子写成 20261012 时第 1 轮变成阿澄 25、老周 21、阿灿 16、小鹿 15,最大最小都不并列;种子 666 时第 3 轮小鹿与老周同得 17 点、并列为最大。三局之间没有共同前缀,说明种子决定的是整条随机流的起点,不是只改第一颗。
期望、方差与点数分布对照表
下表按骰子数给出期望、方差、标准差与点数范围,公式就是 3.5n、35n/12、√(35n/12) 与 n ~ 6n。骰子数下拉框的 1 到 5 正对应这五行。
| 骰子数 | 期望 | 方差 | 标准差 | 点数范围 |
|---|---|---|---|---|
| 1 | 3.5 | 2.916667 | 1.707825 | 1 ~ 6 |
| 2 | 7 | 5.833333 | 2.415229 | 2 ~ 12 |
| 3 | 10.5 | 8.750000 | 2.958040 | 3 ~ 18 |
| 4 | 14 | 11.666667 | 3.415650 | 4 ~ 24 |
| 5 | 17.5 | 14.583333 | 3.818813 | 5 ~ 30 |
下表是两颗骰子的和的分布,36 个等概结果按和归类,次数呈 1、2、3、4、5、6、5、4、3、2、1 的三角形,合计 36。百分比 = 次数 / 36。
| 和 | 出现次数 | 占比 | 组合 |
|---|---|---|---|
| 2 | 1 | 2.7778% | (1,1) |
| 3 | 2 | 5.5556% | (1,2)(2,1) |
| 4 | 3 | 8.3333% | (1,3)(2,2)(3,1) |
| 5 | 4 | 11.1111% | (1,4)(2,3)(3,2)(4,1) |
| 6 | 5 | 13.8889% | (1,5)…(5,1) |
| 7 | 6 | 16.6667% | (1,6)(2,5)(3,4)(4,3)(5,2)(6,1) |
| 8 | 5 | 13.8889% | (2,6)…(6,2) |
| 9 | 4 | 11.1111% | (3,6)(4,5)(5,4)(6,3) |
| 10 | 3 | 8.3333% | (4,6)(5,5)(6,4) |
| 11 | 2 | 5.5556% | (5,6)(6,5) |
| 12 | 1 | 2.7778% | (6,6) |
结果边界与舍入说明
- 骰子数量必须是 1 到 5 的整数:写成 6 时提示「骰子数量 6 超出范围,本页最多 5 颗」;写成 2.5 时提示必须是整数。
- 轮数必须是 1 到 10 的整数;写成 0 或 11 时分别提示超出范围。
- 玩家名单为空、去掉空行后不足 2 行或超过 16 行时,分别提示「名单不能为空」「至少需要 2 位」「超过上限 16,请删掉 N 行」;中间出现只有空白的行时,报出具体行号。
- 种子留空时提示不能为空;种子可以是任意文字,折叠后恒在 0 到 2147483647 之间。
- 页面不掷物理骰子、不加「手感」或「连掷修正」:每颗骰子都是独立等概,上一次的结果不影响下一次。
- 所有数位都是整数或 6 位以内小数,不存在浮点残留;标准差 3.818813 由 √(35×5/12) 算出,页面本身只显示,不参与生成。
- LCG 是确定性伪随机数,适合酒桌与教学;涉及金钱博彩场景请用实体骰子,本页不提供公证保证。
- 页面不联网、不写 localStorage,名单与种子只参与本次开局。
常见问题
同一个种子为什么每次开局的结果都一样?换一批要怎么换?
随机流是确定性的:种子按字符码折叠成 31 位整数作起点,之后每颗骰子推进一次(s × 1103515245 + 12345)对 231 取模。种子 888 折叠为 168,第 1 轮老周的第一颗必然是 4。想换一批就改种子、骰子数、轮数或名单——注意改名单会改变每位玩家对应的随机数序号,等于整局重排。
两个人甩出一样的总分,算谁赢?
并列,同名次。本页用竞赛排名:1、2、2、4,同总分共享名次,标记列写「并列最大」或「并列最小」,不用先后顺序分高下。若你们的口径是「并列加赛一轮」,请把轮数加 1 后人工只重掷并列者,页面不内置重掷逻辑,因为它会让随机数消耗随并列情况变化,破坏种子复现。
5 颗骰子甩出五条的概率到底多大?
6/6⁵ = 6/7776 = 0.0007716049,即 0.07716%。一千局大约出现 0.77 次,绝大多数局看不到。同页的两颗分布表也能对照着看:和 7 占 16.6667%,而 2 和 12 各只有 2.7778%。
为什么 7 是两颗骰子最可能的和,6 和 8 就低一点?
两颗骰子共 36 个等概结果,和为 7 的有 6 种组合,为 6 或 8 的各 5 种,往两边继续递减到 2 和 12 的各 1 种。次数序列 1、2、3、4、5、6、5、4、3、2、1 合计 36,正好是全部结果数。
期望 3.5 是「平均每次 3.5 点」的意思吗?方差又说明什么?
是。单颗掷很多次的平均会收敛到 3.5;n 颗的期望是 3.5n,5 颗就是 17.5。方差 35/12 ≈ 2.916667 衡量偏离程度:5 颗方差 14.583333、标准差 3.818813,所以 5 颗甩出 25 点约在均值上方 2 个标准差,偏高但完全正常。
玩家名单可以写多少人?同名怎么办?
2 到 16 位,每行一个名字,行数即玩家数。同名不报错,但明细表里会出现两行同名不同点数,复盘时容易混,建议加后缀区分,比如「阿澄 A」「阿澄 B」。名单中间出现只有空白的行会报出行号,请删掉或补名。
轮数是怎么推进的?可以几个人一组轮流投吗?
本页一轮之内按名单顺序给每位玩家各投一次,一局就是若干完整轮的堆叠,默认 3 轮 × 4 人 × 5 颗 = 60 次投掷。如果要分组轮流——每轮只投 k 人、玩家总数 N——覆盖全员需要 ceil(N/k) 轮;把 k 设成 N 就是本页的一轮制。分组时请手动拆名单多开几局。
输入的数据会上传吗?工具免费吗?
免费,无需注册。所有投掷都在当前浏览器本地完成,页面不联网、不写 localStorage,名单与种子只用于本次开局。