0

问题:
假设以下随机数表中的数字对应于到某大型工厂上班的人员。让 0,1 和 2 是吸烟者,而 3-9 是不吸烟者。在多次到达后,计算吸烟者的总相对频率。

这是我的 R 代码,用于模拟吸烟者的总相对频率。

simulation<-function(k){
    x<-round(runif(k)*10)
    return  (length(x[x<3])/k)}

> simulation(100)
[1] 0.27
> simulation(1000)
[1] 0.244
> simulation(10000)
[1] 0.2445
> simulation(100000)
[1] 0.24923

为什么我不能得到结果 0.3?

4

1 回答 1

8

如果您只想在数字 0、1、...、9 上获得离散均匀分布,那么只需使用 sample

sample(0:9, k, replace = TRUE)

使用您现在拥有的代码,您实际上得到 0 或 10 的概率为 0.05,得到 1-9 的概率为 0.10。

于 2013-03-18T01:48:35.287 回答