我正在编写一个轮盘赌模拟器,但是卡在了一开始的步骤。我想要从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)) 你会看到分布是平滑的。问题在于直方图中断点的位置,以及存在一个栅栏帖子的问题。直方图不是最好的可视化工具,因为基本上断点必须完全对齐。
plot(density(x))
。问题出在直方图中断点的位置,以及存在一个栅栏帖问题。 - Shapesample
,因为这个函数是专门为此目的设计的。(runif
也会给你正确的答案,但sample
是人们倾向于使用的...) - joran