从一组龙与地下城骰子中取出 5 个柏拉图立体。这些包括 4 面、6 面(传统)、8 面、12 面和 20 面骰子。所有人都从数字 1 开始,并以 1 向上计数。
将它们全部滚动,并取它们的总和(最小和为 5,最大为 50)。多次这样做。分布是什么?
显然,他们将倾向于低端,因为较低的数字多于较高的数字。但是在单个芯片的每个边界上是否会有明显的拐点?
[编辑:显然,看起来很明显的事情并非如此。根据其中一位评论员的说法,平均值为 (5+50)/2=27.5。我没想到会这样。我还是想看看图表。]
从一组龙与地下城骰子中取出 5 个柏拉图立体。这些包括 4 面、6 面(传统)、8 面、12 面和 20 面骰子。所有人都从数字 1 开始,并以 1 向上计数。
将它们全部滚动,并取它们的总和(最小和为 5,最大为 50)。多次这样做。分布是什么?
显然,他们将倾向于低端,因为较低的数字多于较高的数字。但是在单个芯片的每个边界上是否会有明显的拐点?
[编辑:显然,看起来很明显的事情并非如此。根据其中一位评论员的说法,平均值为 (5+50)/2=27.5。我没想到会这样。我还是想看看图表。]
我不想以代数方式进行,但您可以简单地计算 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%。
* 我使用的方法类似于此处概述的过程,尽管设置它所涉及的确切机制会随着用户界面细节的变化而变化(该帖子现在大约有 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 <- 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。
将这种情况与原来的情况进行比较,不难看出,现在的总和比以前多了一个。这意味着分布的形状没有改变,只是向一侧移动了一步。
现在从骰子的每一面减去每个骰子的平均值。
这使骰子标记
等等
现在,这些骰子的总和应该仍然与原来的形状相同,只是向下移动。应该清楚的是,这个和是关于零对称的。因此原始分布也是对称的。