すごろく(5)

サイコロを2つ振ることにする。
確率が収束するのは同じように証明できる。
シミュレーションの結果だと、1/7に収束するっぽい。

p[2] = 0.027998
p[3] = 0.055439
p[4] = 0.083897
p[5] = 0.114852
p[6] = 0.146368
p[7] = 0.182016
p[8] = 0.166205
p[9] = 0.155751
p[10] = 0.147609


p[11] = 0.141375
p[12] = 0.134434
p[13] = 0.124596
p[14] = 0.138334
p[15] = 0.145469
p[16] = 0.148403
p[17] = 0.147863
p[18] = 0.145318
p[19] = 0.143024
p[20] = 0.140839
p[21] = 0.140504
p[22] = 0.141575
p[23] = 0.142232
p[24] = 0.143271
p[25] = 0.143777
p[26] = 0.143373
p[27] = 0.143304
p[28] = 0.142954
p[29] = 0.142524
p[30] = 0.143256
p[31] = 0.142715
p[32] = 0.143122
p[33] = 0.142728
p[34] = 0.142349
p[35] = 0.142913
p[36] = 0.143083
p[37] = 0.143261
p[38] = 0.142962
p[39] = 0.142623
p[40] = 0.142558
p[41] = 0.142848
p[42] = 0.142612
p[43] = 0.143003
p[44] = 0.142552
p[45] = 0.143101
p[46] = 0.142681
p[47] = 0.143212
p[48] = 0.143103
p[49] = 0.142835
p[50] = 0.142578


var NMASU = 50;
var NME = 6;
var n = 1e6;

var p = [ ];
init(p);

for(var i = 0; i < n; i++) {
var pos = 0;
do {
pos += proceed();
p[pos]++;
} while(pos < NMASU);
}

for(var k = 1; k <= NMASU; k++) {
p[k] /= n;
print("p[" + k + "] = " + p[k]);
}

function proceed() {
return Math.floor(NME * Math.random())
+ Math.floor(NME * Math.random()) + 2;
}

function init(p) {
for(var k = 1; k <= NMASU; k++) {
p[k] = 0;
}
}

function print(str) {
WScript.Echo(str);
}