生成随机双倍,同时包含最小限制

时间:2018-04-09 15:47:11

标签: r random

我正在尝试在R和0之​​间生成一个随机双精度,0表示可能的结果,通常runif(1, min, max)会做我需要的。但是,如果我理解正确runif只会给出最小值和最大值之间的结果,而不会给出实际限制。

R中是否有办法生成一个只包含其中一个限制的随机双精度? (在这种情况下,0≤x<100)

josliber创建了一个自定义函数,其中包含两个限制(https://stackoverflow.com/a/24070116/6429759),但我担心我不知道是否可以将其修改为仅包含min。

我确实意识到这只会在很短的时间内改变结果,但它是一个非常频繁运行的功能的一部分,所以它并非一无是处。

1 个答案:

答案 0 :(得分:1)

暂时忽略R,从均匀分布采样时获得正好 0的概率为0 - 因此,对于所有实际目的,从开放区间和闭区间绘制基本相同

现在,在R(或任何基于计算机的系统,就此而言),我们实际上不能代表无数个数字,因为我们正在使用有限的代表系统。因此,从技术上讲,您从有限总体中进行绘制,并且绘制边界点的概率非零。然而,一个好的随机数生成器(和R有几个相当不错的生成器)可以很好地模仿现实 - 这意味着即使你从一个封闭的间隔而不是一个开放的间隔,实际绘制0的概率可以忽略不计。