如何在linux中用命令产生一个范围内的随机数

如何在linux中用命令产生一个范围内的随机数,第1张

在shell中有一个环境变量RANDOM,它的范围是0--32767

如果我们想要产生0-25范围内的数,如下:

$RANDOM%26

用这个环境变量对26取模,就可以得到最小是0,最大是25的数了。

如果想得到1--68范围内的数,可以这样

$RANDOM%68+1,

前面可以得到最小为0,最大为67的随机数,再加上1,很自然的就可以得到最大为1,最小为68的数了。

如果想得到6--87范围内的数。可以这样

$RANDOM%82+6,

前面可以得到最小为0,最大为81的随机数,再加上6,很自然的就可以得到最大为87,最小为6的数了。

如何设置种子呢?一般就 用time函数返回当前时间即可。一般来讲,这样的做法基本上就可以了,因为虽然我们用的是随机数,但是由于种子不同,从上亿的数中去猜测我们的种子几乎 是不可能的。例如:#include #include #include #define random(x) (rand()%x) void main() { srand((int)time(0))for(int x=0x 0) { unsigned int rint ifor (i = 0i <512i++) { read (fd, &r, sizeof (r))ticks += r} close (fd)} srand (ticks)printf("init finished ")} unsigned int new_rand () { int fdunsigned int n = 0fd = open ("/dev/urandom", O_RDONLY)if (fd >0) { read (fd, &n, sizeof (n))} close (fd)return n} int main () { int n, iinit_random ()n = rand ()printf ("n=%d ", n)for(i=0i


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8454609.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-16
下一篇2023-04-16

发表评论

登录后才能评论

评论列表(0条)

    保存