c产生随机数(含时间种子)
Posted zhmlzhml
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c产生随机数(含时间种子)相关的知识,希望对你有一定的参考价值。
有时候我们需要程序产生一个随机数.
可以用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 ", 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产生随机数(含时间种子)的主要内容,如果未能解决你的问题,请参考以下文章