我的第一步是尝试一下。在编写这样的程序时,我通常会更好地了解如何进行。这是我在 Stata(和 Mata)中的写法:
clear all
set obs 10000
mata
// for 10,000 obs role a 6-sided die 24 times
x = ceil(6*runiform(10000,24))
// compute a running sum for each observation
for(i=1; i <= 10000; i++) {
x[i,.] = runningsum(x[i,.])
}
// number of roles till running sum passes 24
T = rowsum(x :< 24)
// add that variable to the dataset
idx =st_addvar("byte","T")
st_store(.,idx,T)
end
// look at T:
spikeplot T
tab T
T | Freq. Percent Cum.
------------+-----------------------------------
3 | 6 0.06 0.06
4 | 638 6.38 6.44
5 | 2,248 22.48 28.92
6 | 2,976 29.76 58.68
7 | 2,313 23.13 81.81
8 | 1,204 12.04 93.85
9 | 451 4.51 98.36
10 | 123 1.23 99.59
11 | 33 0.33 99.92
12 | 7 0.07 99.99
13 | 1 0.01 100.00
------------+-----------------------------------
Total | 10,000 100.00
sum T
Variable | Obs Mean Std. Dev. Min Max
-------------+--------------------------------------------------------
T | 10000 6.3238 1.344966 3 13
所以T是一个整数,它有最小值⌊Z/b⌋−1并且最多⌊Z/a⌋−1. 我宁愿采取一些易于管理的价值观a,b和Z并写下 T 的每个可能值的概率并寻找模式。