6

如何使用 sas 中的 ranuni() 函数生成 10 到 50 之间的随机整数。

为了生成 1 到 5 之间的随机整数,我使用了这段代码

data random;
 do i=1 to 10;
    random_int = int(ranuni(0) * 5 + 1);
    output;
 end;

跑;

4

2 回答 2

8

使用相同的逻辑,您可以使用:

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>

于 2013-01-02T12:39:31.863 回答
1

如果 u 是 [0,1] 中的随机均匀变量,则 x = a + (ba)*u 是 [a,b] 上的随机均匀变量。请参阅http://blogs.sas.com/content/iml/2011/08/24/how-to-generate-random-numbers-in-sas/

于 2013-01-02T19:49:26.750 回答