擲一個 6 面骰子,直到總數≥M_≥米geq M.平均金額米米M是否超過?
這是問題:
你反复擲一個公平的 6 面骰子,直到擲出的骰子的總和大於或等於 M。當 M=300 時,總和減去 M 的均值和標準差是多少?
我應該寫一個代碼來回答這些問題嗎?
請給我一些提示。謝謝!
你當然可以使用代碼,但我不會模擬。
我將忽略“減 M”部分(最後你可以很容易地做到這一點)。
您可以很容易地遞歸計算概率,但可以通過簡單的推理計算出實際答案(達到非常高的準確度)。
讓卷是. 讓.
讓是最小的索引,其中.
相似地
然後可以(至少在原則上)運行類似於上述第一個方程的方程,直到您達到任何初始條件以獲得初始條件和我們想要的概率之間的代數關係(這將是乏味的並且不是特別有啟發性) ,或者您可以構造相應的正向方程並從初始條件向前運行它們,這在數值上很容易做到(這就是我檢查答案的方式)。但是,我們可以避免這一切。
點的概率是之前概率的加權平均值;這些將(在幾何上快速地)消除初始分佈中概率的任何變化(在我們的問題的情況下,所有概率都在零點)。這
對於一個近似值(一個非常準確的),我們可以說到在某個時間應該幾乎同樣可能(真的很接近),所以從上面我們可以寫下概率將非常接近於簡單的比率,並且由於它們必須被歸一化,我們可以寫下概率。
也就是說,我們可以看到,如果從到是完全相等的,有 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
(fromzoo
) 來更有效地執行此操作 - 或許多其他此類功能 - 但如果我保持明確,它會更容易翻譯)請注意,這
d6
是一個 1 到 6 的離散概率函數,因此最後一行循環內的代碼正在構建早期值的運行加權平均值。正是這種關係使概率變得平滑(直到我們感興趣的最後幾個值)。所以這是前 50 多個值(前 25 個用圓圈標記的值)。在每一個,y 軸上的值表示在我們將其向前滾動到接下來的 6 個單元之前,在最後一個單元中累積的概率。
如您所見,它變得平滑(到,每個擲骰子的步數平均值的倒數)很快並保持不變。
一旦我們擊中,這些概率就消失了(因為我們沒有把值的概率放在並依次向前)
所以這個想法是到應該同樣可能,因為從初始條件開始的波動將被平滑,顯然是這種情況。
因為推理不依賴於任何東西大到足以使初始條件消失,使得到在同一時間幾乎同樣可能, 分佈對於任何大的,正如亨利在評論中建議的那樣。
回想起來,亨利的暗示(這也在你的問題中)使用總和減去 M 將節省一點努力,但論點將遵循非常相似的路線。你可以通過讓並寫出類似的方程式到前面的值,依此類推。
從概率分佈來看,概率的均值和方差很簡單。
編輯:我想我應該給出最終位置減去的漸近平均值和標準差:
漸近平均過剩是標準差是. 在這比您可能關心的要準確得多。