runif() 不统一

runif() is not uniform

我正在写一个轮盘赌模拟器,但我刚开始就卡住了。我想绘制从 0 到 36 的整数,所以我使用了 runif()。 我注意到 0 是杰出的。看看:

n=1000000
x=floor(runif(n,0,37))
hist(x,breaks=37)

要删除“0”,我写道:

n=1000000
x=floor(runif(n,0,37)*100)/100
hist(x,breaks=37)

是什么给了我

我的问题是 为什么它有效?

不,这不是 runif 的问题。

试试这个: plot(density(x))

您会看到分布很平滑

问题在于直方图中的中断位置,并且存在栅栏问题。直方图不是最好的可视化工具,因为基本上中断必须完美对齐。