rdice = function(n) { floor(runif(n,1,7)) } experiment1 = function(max) { iter = 0 freq = rep(0, 6) while(iter < max) { dice1 = rdice(1) dice2 = rdice(1) if (dice1 == 6 || dice2 == 6) { freq[dice1] = freq[dice1] + 1 freq[dice2] = freq[dice2] + 1 freq[6] = freq[6] - 1 iter = iter + 1 } } freq / max } experiment2 = function(max) { iter = 0 freq = rep(0, 6) while(iter < max) { dice1 = rdice(1) if (dice1 == 6) { dice2 = rdice(1) freq[dice2] = freq[dice2] + 1 iter = iter + 1 } } freq / max } #1から6までそれぞれの値が出る確率をシミュレーションで計算する #こっちだと6の確率が低い experiment1(5000) #こっちだと全部同じ確率 experiment2(5000)