码迷,mamicode.com
首页 > 其他好文 > 详细

c产生随机数(含时间种子)

时间:2020-03-16 22:00:54      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:当前时间   ++   也会   include   std   时间   and   那是   unsigned   

有时候我们需要程序产生一个随机数.

可以用rand()

但是其实这个随机数是伪随机数,它是一个周期很长的一个值而已.

所以我们可以加入一个随机数种子srand(),这个可以取以当前时间为基准的一个值.

 1 #include <stdlib.h> 
 2   #include <stdio.h> 
 3   #include <time.h> 
 4   main() 
 5   { 
 6     int i,k;
 7    srand( (unsigned)time( NULL ) ); 
 8    for( i = 0; i < 10;i++ ) 
 9   { 
10      k=rand()%100+1;   //rand()%100表示取100以内的随机数,  由于rand产生的随机数是0到rand_max,而rand_max是一个很大的数,那么要产生一个从X到Y的随机数,x=rand()%(Y-X+1)+X 
11      printf( " k=%d\n", k ); 
12   } 
13 }

然后可以看一下我这里出的结果

 1 k=18
 2  k=62
 3  k=97
 4  k=28
 5  k=85
 6  k=97
 7  k=99
 8  k=47
 9  k=35
10  k=59

其实如果把srand去掉,可以发现也会产生一些随机数,只不过每次运行产生的随机数都是一样的.

那是因为你不设定种子,每次默认的种子都是1.

但是加上以后,就感觉比较随机了,每次都是不一样的.

c产生随机数(含时间种子)

标签:当前时间   ++   也会   include   std   时间   and   那是   unsigned   

原文地址:https://www.cnblogs.com/zhmlzhml/p/12506812.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!