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

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

linux内核自1.3.30版本以来实现了一个随机数产生器,从理论上说它能产生真正的随机数,该随机数产生器是从设备驱动收集电路上的环境噪音放入熵池,它的实现代码在drivers/char/random.c中,自己去看吧

如何设置种子呢?一般就 用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


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

原文地址: http://outofmemory.cn/yw/9002282.html

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

发表评论

登录后才能评论

评论列表(0条)

保存