【发布时间】:2012-12-16 18:02:57
【问题描述】:
如何使用 sas 中的 ranuni() 函数生成 10 到 50 之间的随机整数。
为了生成 1 到 5 之间的随机整数,我使用了这段代码
data random;
do i=1 to 10;
random_int = int(ranuni(0) * 5 + 1);
output;
end;
运行;
【问题讨论】:
标签: sas
如何使用 sas 中的 ranuni() 函数生成 10 到 50 之间的随机整数。
为了生成 1 到 5 之间的随机整数,我使用了这段代码
data random;
do i=1 to 10;
random_int = int(ranuni(0) * 5 + 1);
output;
end;
运行;
【问题讨论】:
标签: sas
使用相同的逻辑,您可以使用:
random_int = int(ranuni(0) * 41 + 10);
ranuni从区间<0, 1>返回一个值,乘以41得到<0, 41>的值,加10得到<10, 51>的值。转换为 int 只是截断了小数部分,所以你永远不会得到 51。
一般:
a * ranuni(seed) + b;
从区间 <b, a + b> 返回一个值。
【讨论】:
如果 u 是 [0,1] 上的随机均匀变量,则 x = a + (b-a)*u 是 [a,b] 上的随机均匀变量。 见http://blogs.sas.com/content/iml/2011/08/24/how-to-generate-random-numbers-in-sas/
【讨论】: