一次掷出的各种多面体骰子的分布是什么?

机器算法验证 分布 骰子
2022-02-10 19:23:49

从一组龙与地下城骰子中取出 5 个柏拉图立体。这些包括 4 面、6 面(传统)、8 面、12 面和 20 面骰子。所有人都从数字 1 开始,并以 1 向上计数。

将它们全部滚动,并取它们的总和(最小和为 5,最大为 50)。多次这样做。分布是什么?

显然,他们将倾向于低端,因为较低的数字多于较高的数字。但是在单个芯片的每个边界上是否会有明显的拐点?

[编辑:显然,看起来很明显的事情并非如此。根据其中一位评论员的说法,平均值为 (5+50)/2=27.5。我没想到会这样。我还是想看看图表。]

4个回答

我不想以代数方式进行,但您可以简单地计算 pmf(它只是卷积,这在电子表格中非常容易)。

我在电子表格中计算了这些*:

i        n(i)   100 p(i)
5         1     0.0022
6         5     0.0109
7        15     0.0326
8        35     0.0760
9        69     0.1497
10      121     0.2626
11      194     0.4210
12      290     0.6293
13      409     0.8876
14      549     1.1914
15      707     1.5343
16      879     1.9076
17     1060     2.3003
18     1244     2.6997
19     1425     3.0924
20     1597     3.4657
21     1755     3.8086
22     1895     4.1124
23     2014     4.3707
24     2110     4.5790
25     2182     4.7352
26     2230     4.8394
27     2254     4.8915
28     2254     4.8915
29     2230     4.8394
30     2182     4.7352
31     2110     4.5790
32     2014     4.3707
33     1895     4.1124
34     1755     3.8086
35     1597     3.4657
36     1425     3.0924
37     1244     2.6997
38     1060     2.3003
39      879     1.9076
40      707     1.5343
41      549     1.1914
42      409     0.8876
43      290     0.6293
44      194     0.4210
45      121     0.2626
46       69     0.1497
47       35     0.0760
48       15     0.0326
49        5     0.0109
50        1     0.0022

这里是获得每个总数的方法数;是概率,其中最可能的结果发生的概率不到 5%。n(i)ip(i)p(i)=n(i)/46080

y 轴是以百分比表示的概率。 在此处输入图像描述

* 我使用的方法类似于此处概述的过程,尽管设置它所涉及的确切机制会随着用户界面细节的变化而变化(该帖子现在大约有 5 年历史了,尽管我大约一年前对其进行了更新)。这次我使用了不同的包(这次我是在 LibreOffice 的 Calc 中完成的)。不过,这就是它的要点。

所以我做了这个代码:

d4 <- 1:4  #the faces on a d4
d6 <- 1:6  #the faces on a d6
d8 <- 1:8  #the faces on a d8
d10 <- 1:10 #the faces on a d10 (not used)
d12 <- 1:12 #the faces on a d12
d20 <- 1:20 #the faces on a d20

N <- 2000000  #run it 2 million times
mysum <- numeric(length = N)

for (i in 1:N){
     mysum[i] <- sample(d4,1)+
                 sample(d6,1)+
                 sample(d8,1)+
                 sample(d12,1)+
                 sample(d20,1)
}

#make the plot
hist(mysum,breaks = 1000,freq = FALSE,ylim=c(0,1))
grid()

结果就是这个情节。 在此处输入图像描述

它看起来非常高斯。我认为我们(再次)可能已经证明了中心极限定理的变体。

我将展示一种在 R 的帮助下以代数方式执行此操作的方法。假设不同的骰子具有由向量给出的概率分布

P(X=i)=p(i)
在哪里X是掷骰子时看到的眼睛数量,以及i是范围内的整数0,1,,n. 所以两只眼睛的概率,比如说,在第三个向量分量中。然后一个标准骰子的分布由向量给出(0,1/6,1/6,1/6,1/6,1/6,1/6). 概率生成函数 (pgf) 由下式给出p(t)=06p(i)ti. 让第二个骰子具有向量给出的分布q(j)范围内给出的两个独立掷骰子上眼睛总和的分布写出我们可以看到它是由系数序列的卷积给出的,因此可以通过 R 函数 convolve() 找到。让我们用两次标准骰子来测试一下:j0,1,,mp(t)q(t)

> p  <-  q  <-  c(0, rep(1/6,6))
> pq  <-  convolve(p,rev(q),type="open")
> zapsmall(pq)
 [1] 0.00000000 0.00000000 0.02777778 0.05555556 0.08333333 0.11111111
 [7] 0.13888889 0.16666667 0.13888889 0.11111111 0.08333333 0.05555556
[13] 0.02777778

您可以检查它是否正确(通过手工计算)。现在对于真正的问题,五个骰子有 4、6、8、12、20 面。我会假设每个骰子的概率是一致的。然后:

> p1  <-  c(0,rep(1/4,4))
> p2 <-  c(0,rep(1/6,6))
> p3 <-  c(0,rep(1/8,8))
> p4  <-  c(0, rep(1/12,12))
> p5  <-  c(0, rep(1/20,20))
> s2  <-  convolve(p1,rev(p2),type="open")
> s3 <-  convolve(s2,rev(p3),type="open")
> s4 <-  convolve(s3,rev(p4),type="open")
> s5 <- convolve(s4, rev(p5), type="open")
> sum(s5)
[1] 1
> zapsmall(s5)
 [1] 0.00000000 0.00000000 0.00000000 0.00000000 0.00000000 0.00002170
 [7] 0.00010851 0.00032552 0.00075955 0.00149740 0.00262587 0.00421007
[13] 0.00629340 0.00887587 0.01191406 0.01534288 0.01907552 0.02300347
[19] 0.02699653 0.03092448 0.03465712 0.03808594 0.04112413 0.04370660
[25] 0.04578993 0.04735243 0.04839410 0.04891493 0.04891493 0.04839410
[31] 0.04735243 0.04578993 0.04370660 0.04112413 0.03808594 0.03465712
[37] 0.03092448 0.02699653 0.02300347 0.01907552 0.01534288 0.01191406
[43] 0.00887587 0.00629340 0.00421007 0.00262587 0.00149740 0.00075955
[49] 0.00032552 0.00010851 0.00002170
> plot(0:50,zapsmall(s5))

该图如下所示:

在此处输入图像描述

现在您可以将这个精确的解决方案与模拟进行比较。

对你的直觉有一点帮助:

首先,考虑如果将一个骰子的所有面都加一个会发生什么,例如 d4。因此,面现在显示为 2,3,4,5,而不是 1,2,3,4。

将这种情况与原来的情况进行比较,不难看出,现在的总和比以前多了一个。这意味着分布的形状没有改变,只是向一侧移动了一步。

现在从骰子的每一面减去每个骰子的平均值。

这使骰子标记

  • 32,12,12,32
  • 52,32,12,12,32,52
  • 72,52,32,12,12,32,52,72

等等

现在,这些骰子的总和应该仍然与原来的形状相同,只是向下移动。应该清楚的是,这个和是关于零对称的。因此原始分布也是对称的。