Random SAS ranuni(0)能否返回0?

Random SAS ranuni(0)能否返回0?,random,sas,Random,Sas,函数ranuni(0)是否可能返回0?我知道理论概率为零,但实际上它取决于生成器。我会说否。文档中列出的范围为(0,1)。注意使用()而不是[],这是排除区间端点时的正常表示法 较新的RAND('uniform')函数是比RANUNI()更好的随机数生成器。该函数的文档清楚地表明范围为0

函数ranuni(0)是否可能返回0?我知道理论概率为零,但实际上它取决于生成器。

我会说否。文档中列出的范围为(0,1)。注意使用()而不是[],这是排除区间端点时的正常表示法

较新的
RAND('uniform')
函数是比
RANUNI()更好的随机数生成器。该函数的文档清楚地表明范围为0否,它不能返回零(或一)

SAS用于计算下一个随机数的是:

SEED = mod( SEED * 397204094, 2**31-1 )
RETURN (SEED/(2**31-1))

由于
2**31-1
是一个素数,而新种子本身不能是2**31-1(由于使用了模运算符),
mod([任何]),2**31-1)
永远不能返回0。

我在文档中注意到了这个范围,但(0,1)上的技术统一分布和[0,1]上的分布是一样的(累积分布函数完全相同)。