跳到主要内容
CalcMax

骰子生成器

范围:1 – 20

范围:2 – 100

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

结果

5

点数之和

掷出的点数
4, 1
掷出这个和的概率
11.11%
可能的和的数量
11

骰子生成器把一组骰子变成刚掷出的那几点,并顺手给出这个点数之和出现的概率。填上骰子个数、每个骰子几个面、以及这一掷的固定种子,面板会给出点数之和、按掷出顺序排列的每一颗骰子、这个和出现的概率,以及这一组骰子一共能掷出多少种和。关心桌面游戏的人更在意那几点,而只要涉及多个骰子、和就比点数更要紧——掷出 4 和掷出 7 一点都不一样。固定种子局在桌面上是一种真的掷骰方式,不是替身:同一个种子重跑一次还是同一手点数,跑团复盘、程序生成关卡、或者测试一条规则时,要的正是这一点。

两个六面骰能掷出的每一种和,以及各自有多少种取法

点数之和取法数概率(%)
212.78
325.56
438.33
5411.11
6513.89
7616.67
8513.89
9411.11
1038.33
1125.56
1212.78

这张表是两个六面骰的固定参考,不跟着上面输入框里的骰子变——表拿不到那些输入,所以它永远说的是 2d6。跟着你自己的骰子走的是结果面板上的概率;两者不一致时,面板是对的,表在回答另一个问题。中间那一列才是诚实的单位:和是 7 有 6 种取法,36 种等可能的点数组里占 6 种,所以概率是 6/36 = 16.67%,这是概率的定义而不是它的近似。取法数一列加起来是 36、概率一列加起来是 100%,这就是「没有漏掉任何一种取法」的验算。

公式

取法数(和) = (x + x² + … + x^面数)^骰子个数 展开后 x^和 那一项的系数 → 概率 = 取法数(和) / 面数^骰子个数

diceCount
掷几颗骰子,最多 20 颗。一颗骰子是均匀的,每个面一样可能;两颗以上中间的和会堆起来,这正是「和的概率」值得单独给出来的原因
sides
每颗骰子有几个面,从 2 到 100。常见的 d6 在这里,二十面骰与一百面骰也在这里
取法数(和)
有多少种掷法能得到这个和。取法数才是骰子上最诚实的单位——两颗六面骰掷出 7 有 6 种取法,36 种里的这 6 种就是它的概率
seed
这一掷的起点,可以取 0 到 4294967295 之间的任意整数。同一个种子配同一组骰子给出同一手点数,于是这一掷可以被重跑、被核对
和
各颗骰子点数相加。它从「骰子个数」(全是 1)到「骰子个数 × 面数」(全掷出最高面),所以一组骰子能掷出的和的个数是 骰子个数 × 面数 − 骰子个数 + 1

在意的是和、而具体每一颗骰子只是细节时用它:算 3d6 能不能压过一个目标值、开局之前先看一眼 2d6 的和的分布、或者要一掷可复现的固定种子局。固定种子是它不止于「好玩」的那一半——程序生成关卡、一群人复盘同一场、以及测试一条规则,都需要一掷可以重来的骰子,而种子正是把「这一掷」变成「谁都能重跑的这一掷」的东西。它不是物理意义上的公平骰子:这些点数来自一段确定性序列,所以任何「参与者不该能预测点数」的场合都不该用它。

算例

  1. 两个六面骰,种子 1:掷出 4 和 1,和是 5

    1. 两颗六面骰一共 6 × 6 = 36 种等可能的点数组
    2. 种子 1 把这一手定在 4 和 1 上,和是 4 + 1 = 5
    3. 和为 5 的取法有 1+4、2+3、3+2、4+1 四种,36 种里占 4 种
    4. 4 / 36 = 0.1111…,所以概率是 11.11%

    把这一掷和概率印在一起,要看的正是这个 11.11%:和是 5 看起来平平无奇,它确实是并列第三常见的和,可也只有大约九分之一的掷法能掷出来。和 2 与和 12 各只有一种取法,是最罕见的 2.78%;和 7 有六种取法,16.67%。一颗骰子完全没有这套结构——每个面都是 1/面数——所以概率出乎意料时,第一个该看的就是骰子个数。

  2. 三个六面骰,种子 5:掷出 5、5、2,和是 12

    1. 三颗六面骰一共 6 × 6 × 6 = 216 种等可能的点数组
    2. 种子 5 给出的点数是 5、5、2,相加是 12
    3. 这组骰子能掷出 3 × 6 − 3 + 1 = 16 种和,从 3 到 18
    4. 和为 12 的取法有 25 种,216 种里占 25 种,概率 11.57%

    三颗骰子比两颗把中间挤得更密:最常见的是 10 和 11,各 12.5%,12 紧跟在后面 11.57%。同样是和 12,放在两颗骰子里却是最罕见的结果,只有 2.78%——所以一个和脱离骰子组谈概率是没意义的。这 16 种和也说明「个数不等于面数」:三颗六面骰的和从 3 到 18 一共 16 种,既不是 18 也不是 6。

  3. 一颗二十面骰,种子 7

    1. 只有一颗骰子就没有点数可合并,每个面都一样可能
    2. 种子 7 给出的是 1 点
    3. 20 个面里占 1 个,1 / 20 = 5%

    这是分布退化成均匀分布的那一端:没有中间堆高的现象,因为只有一颗骰子,掷出 1 和掷出 20 一样可能。它也是看清「多出来的骰子在做什么」最直观的一格——2d6 的两端罕见,1d20 什么都不罕见,而机制完全在于每种和有多少种取法。旁边的随机数生成器讲的是同一件事的另一面:一次均匀抽取,和一串抽取之和,不是一回事。

  4. 种子取到上界

    1. 种子最大可以填 4294967295,也就是 2³² − 1,生成器状态能存下的最大值
    2. 与第一条算例同样的两颗骰子,换了种子,所以是另一手点数
    3. 6 和 2 相加是 8,而和为 8 的取法有五种,36 种里占 5 种
    4. 5 / 36 = 13.89%

    种子填 4294967295 值得试一次,因为这是唯一一个「状态那一步写错也看不出来」的种子取值:状态按 32 位无符号整数保存,而最大值正好是那个差一位不再隐身的地方。这里看得见的结果是一手普通的 6 和 2——面板本来就不该看起来不一样——这正是把边界写成测试、而不是写成给用户看的功能的原因。

局限

这些点数不是不可预测的。它们来自普通软件里那种又小又快的种子式序列:知道种子就能复现整手点数,看过几手就能反推出种子。所以任何「参与者不该能预测或还原这一掷」的场合都不该用它——带钱的对赌、密钥、令牌、一次性验证码,那些场合只有密码学随机源才是对的答案;固定种子局是给复盘、生成与测试用的,可复现在那里是目的本身。另外两条限制要说清楚:计算器下面那张参考表描述的是两个六面骰,它不跟着你填的骰子变——那张表是固定参考,跟着你的骰子走的是结果面板上的概率。以及,这里算的是公平骰子:有偏的实体骰子对不上这些数,无论骰子组是什么。

常见问题

为什么计算器下面那张表和我填的骰子对不上?
因为那张参考表锁定在两个六面骰上。它是从常数算出来的、不是从输入算出来的,所以你改骰子时它不动;跟着你的骰子走的是结果面板上的概率,两者不一致时读面板。放这张表是因为 2d6 正是人们问「骰子概率」时心里想的那个分布:7 在中间,2 和 12 在两头。真要看别的骰子组的概率,面板给出的就是你掷出来的那个和的概率,同一个种子再掷一次、换一个和对照也可以。
种子是干什么的?为什么每次都是同一手点数?
种子是这一掷开始的状态,所以同一个种子配同一组骰子永远给出同一手点数。这是它的用处而不是偷懒:一场跑团复盘、一个生成出来要保持不变的关卡、一条要拿固定点数反复测的规则,靠的都是这个。换个种子,同一组骰子就是另一手。想让每次都不一样,就在两次之间改种子——面板不会背着你把种子往后推。
这些点数能用在「谁都不许提前猜到结果」的场合吗?
不能,而且这个区分很重要。点数来自一段又小又确定的序列:知道种子就能复现整手点数,看过几手就能把种子反推出来。凡是参与者不该能预测或还原这一掷的场合,都要换成密码学随机源。桌面复盘、生成关卡、测试规则、可复现的抽样都没问题——那正是「能重跑」本身就是理由的场合。
为什么两颗骰子时和 7 最常见,三颗骰子时却不是?
因为堆在中间的是「一个和有多少种取法」,而取法数取决于骰子组。两颗六面骰一共 36 种点数组,和 7 占 6 种(1+6 到 6+1),比其他任何和都多。三颗骰子时最常见的是 10 和 11,各 12.5%,7 就掉到后面去了。同一个和在骰子组不同时含义不同,所以面板总是把「和」和「你这一组骰子的概率」一起给出。
一组骰子能掷出多少种和?
从最小的和(全是 1)到最大的和(每颗都掷出最高面):骰子个数乘以面数,再减去骰子个数,加 1。2d6 是 11 种、从 2 到 12;3d6 是 16 种、从 3 到 18;20d100 是 1981 种。所以它不是面数的个数;而且两端的和永远最罕见,因为各只有一种取法。
面板上的概率是「点数之和」的概率,还是「具体哪几点」的概率?
是点数之和的概率。两颗骰子掷出 4 和 1,与掷出 1 和 4,和都是 5,面板给的是这个和出现的概率,把所有加起来等于它的组合都算进去——和为 5 是 36 种里的 4 种。具体到有序的某一手是另一个小得多的概率(任意指定的一对是 1/36),面板给的不是它,因为决定「这一掷压不压得过目标值」的是和。

参考资料

相关计算器