十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
linux内核自1.3.30版本以来实现了一个随机数产生器,从理论上说它能产生真正的随机数,该随机数产生器是从设备驱动收集电路上的环境噪音放入熵池,它的实现代码在drivers/char/random.c中,自己去看吧
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都网站建设、网站建设、富源网络推广、小程序制作、富源网络营销、富源企业策划、富源品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供富源建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
下面的命令将随机生成1-1000之间的100个随机数,并求和输出:
shuf -i 1-1000 -n 100|awk '{sum+=$1} END {print "Sum = ", sum}'
输出:Sum = 52997
#includestdio.h
#includestdlib.h
#includetime.h
int main()
{
int i,j;
srand(time(0));
for( i = 0;i 1000;i++)
for(j = 0;i 100;i++){
printf("%3d",rand()%100+1);
printf("\n");
}
return 0;
}
如何设置种子呢?一般就 用time函数返回当前时间即可。一般来讲,这样的做法基本上就可以了,因为虽然我们用的是随机数,但是由于种子不同,从上亿的数中去猜测我们的种子几乎 是不可能的。例如:#include #include #include #define random(x) (rand()%x) void main() { srand((int)time(0));for(int x=0;x 0) { unsigned int r;int i;for (i = 0; i 512; i++) { read (fd, r, sizeof (r));ticks += r;} close (fd);} srand (ticks);printf("init finished ");} unsigned int new_rand () { int fd;unsigned int n = 0;fd = open ("/dev/urandom", O_RDONLY);if (fd 0) { read (fd, n, sizeof (n));} close (fd);return n;} int main () { int n, i;init_random ();n = rand ();printf ("n=%d ", n);for(i=0;i