Answers:
您当然可以使用代码,但是我不会模拟。
我将忽略“减M”部分(最后可以很容易地做到这一点)。
您可以很容易地递归计算概率,但是可以通过简单的推理来计算实际答案(非常准确)。
让卷是。令。S t = ∑ t i = 1 X i
令是的最小索引。小号τ ≥ 中号
类似地
然后,可以(至少在原则上)类似于上面第一个方程式运行,直到您遇到任何初始条件,以获得初始条件和我们想要的概率之间的代数关系(这将是乏味的,不会特别启迪) ,或者您可以构造相应的正向方程并从初始条件开始向前运行,这很容易通过数字进行(这也是我检查答案的方式)。但是,我们可以避免所有这些情况。
这些点的概率是先前概率的加权平均值;这些将(在几何上快速)消除初始分布的任何概率变化(对于我们的问题,所有概率都在零点处)。的
近似(非常准确的一个),我们可以说在时间(非常接近)时,到的几率几乎相等,因此从上面我们可以写下概率将非常接近简单比率,并且由于必须将它们标准化,因此我们可以写下概率。
就是说,我们可以看到,如果从到的概率完全相等,则有6种相同的可能性到达,5种到达,依此类推。到达 1种方式。
也就是说,概率之比为6:5:4:3:2:1,并且总和为1,因此写下来很简单。
计算它到底(达到累积数值舍入误差)由零运行的概率递归(我这样做是在R)前给出的顺序上的差异.Machine$double.eps
(我的机器上),从上述近似(这是说,沿着上述思路进行简单推理就可以有效地给出准确答案,因为它们与从递归计算得出的答案一样接近我们期望的确切答案。2.22e-16
这是我的代码(大部分只是初始化变量,工作全都在一行中)。该代码在第一轮滚动后开始(为节省我放入单元格0,这对于R中的处理是一个小麻烦);在每个步骤中,它占用的是可能占据的最低单元,并通过模具辊向前移动(将该单元的概率扩展到接下来的6个单元中):
p = array(data = 0, dim = 305)
d6 = rep(1/6,6)
i6 = 1:6
p[i6] = d6
for (i in 1:299) p[i+i6] = p[i+i6] + p[i]*d6
(我们可以使用rollapply
(from zoo
)来更有效地执行此操作-或其他许多此类功能-但如果我将其保持明确,则翻译起来会更容易)
请注意,这d6
是一个介于1到6之间的离散概率函数,因此最后一行循环内的代码正在构造较早值的运行加权平均值。正是这种关系使概率趋于平稳(直到我们感兴趣的最后几个值)。
因此,这是前50个值(前25个用圆圈标记的值)。在每个,y轴上的值代表在我们将其向前滚动到接下来的6个像元之前,在最后面的像元中累积的概率。
如您所见,它很快就平滑了(平滑到,每个模头滚走的平均步数的倒数)并且保持恒定。
一旦我们达到,这些概率就会消失(因为我们没有将值的概率依次推到或更高)。
因此,可以清楚地看到这样的想法,即到应该相等,因为可以消除来自初始条件的波动。
由于推理不依赖任何东西,而是足够大,以至于初始条件被冲走,因此在时间上到几乎相等,因此任何情况下的分布基本相同大,如亨利在评论中建议的那样。
回想起来,亨利的暗示(也在您的问题中)使用负和M会节省一些精力,但是论点会遵循非常相似的思路。您可以通过让并编写将与前面的值相关的类似公式进行操作,依此类推。
从概率分布来看,概率的均值和方差就很简单。
编辑:我想我应该给出最终位置减去的渐近均值和标准差:
渐近平均过量为,标准偏差为。在这比您可能关心的要精确得多。
令为骰子部分和的序列集(每个序列都从开始)。对于任何整数,令为出现在序列中的事件;那是,
将定义为中等于或超过的第一个值。该问题要求属性。 我们可以获得的确切分布,并由此得出所有结果。
首先,请注意。通过根据紧接的前一个值对事件划分,并令为在一卷骰子上观察面部的概率(),因此X 中号 - 中号= ķ ω p (我)= 1 / 6 我我= 1 ,2 ,3 ,4 ,5 ,6
在这一点上,我们可以试探性地认为,除了最小的,所有近似值都是这是因为滚动的预期值为并且其倒数应该是中任何特定值的极限,稳定的长期运行频率。
一种证明这一点的严格方法考虑了可能如何发生。要么发生和随后的辊是一个 ; 或发生,随后的掷骰为;或...或发生,随后的掷骰为。这是可能性的详尽划分
该序列的初始值为
对于此图显示了机会沉降到常数速度有多快,如水平虚线所示。
这种递归序列有一个标准的理论。它可以通过生成函数,马尔可夫链甚至代数运算来开发。总体结果是存在的闭式公式。 这将是常数与多项式根的幂的线性组合
这些根的最大量约为。在双精度浮点表示中,本质上为零。因此,对于,我们可以完全忽略除常数以外的所有内容。 该常数是。
因此,对于,出于所有实际目的,我们可以考虑,
计算此分布的均值和方差既简单又容易。
这是一个R
模拟,以证实这些结论。它通过生成近100,000个序列,将的值制成表格,并应用测试以评估结果是否与前述一致。p值(在这种情况下)为,足以表明它们是一致的。X 300 - 300 χ 2
M <- 300
n.iter <- 1e5
set.seed(17)
n <- ceiling((2/7) * (M + 3*sqrt(M)))
dice <- matrix(ceiling(6*runif(n*n.iter)), n, n.iter)
omega <- apply(dice, 2, cumsum)
omega <- omega[, apply(omega, 2, max) >= M+5]
omega[omega < M] <- NA
x <- apply(omega, 2, min, na.rm=TRUE)
count <- tabulate(x)[0:5+M]
(cbind(count, expected=round((2/7) * (6:1)/6 * length(x), 1)))
chisq.test(count, p=(2/7) * (6:1)/6)
[self-study]
标签并阅读其Wiki。然后告诉我们您到目前为止所了解的内容,尝试过的内容以及遇到的困难。我们将提供提示,以帮助您避免卡住。