rand()与 srand()
Posted 654321cc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rand()与 srand()相关的知识,希望对你有一定的参考价值。
一 头文件 <time.h>
srand()就是给rand()提供种子seed。
在C语言中,srand()与rand()是随机函数,其中srand函数是伪随机数发生器的初始化函数,原型void srand(unsigned int seed);rand()是伪随机数生成器,在调用了srand()产生的种子以后,产生伪随机数。
C语言中语句srand( (time(NULL) ) ; 表示设置一个随机种子,每次运行都能保证随机种子不同。
在C语言中,rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,它是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值。因此,C提供了srand()函数,它的原型是 void srand( int a)。用来改变这个种子值。
srand( (time(NULL) )中time(NULL)函数是得到一个从1900年1月1日到现在的时间秒数,这样每一次运行程序的时间的不同就可以保证得到不同的随机数了
#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { srand(time(NULL)); printf("%d",rand()); return 0; }
二 头文件 <windows.h>
#include <stdio.h> #include <stdlib.h> #include <time.h> #include <windows.h> int main() { srand(time(NULL));//time.h printf("%d",rand()); Sleep(500);//windows.h printf("xxx"); return 0; }
输出:
28666xxx Process returned 0 (0x0) execution time : 0.537 s
以上是关于rand()与 srand()的主要内容,如果未能解决你的问题,请参考以下文章
`rand()` 的用处 - 或者谁应该调用 `srand()`?