background image

rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数 ,

是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这
系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机
数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个
种子的值,C

 

提供了 srand()函数,它的原形是 void srand( int a).

    初始化随机产生器既 rand()函数的初始值,即使把种子的值改成 a; 从这你可以看到通
过 sand()函数,我们是可以产生可以预见的随机序列,那我们如何才能产生不可预见的随
机序列呢?我们可能常常需要这样的随机序列,是吧。利用 srand((unsign)(time(NULL))是
一种方法,因为每一次运行程序的时间是不同的.
    下面讲一讲在 C 语言里所提供的随机数发生器的用法。现在的 C 编译器都提供了一个基
于 ANSI 标准的伪随机数发生器函数,用来生成随机数。它们就是 rand()和 srand()函数。这
二个函数的工作过程如下:
1) 首先给 srand()提供一个种子,它是一个 unsigned int 类型,其取值范围从 0~65535;
2) 然后调用 rand(),它会根据提供给 srand()的种子值返回一个随机数(在 0 到 32767 之间)
3) 根据需要多次调用 rand(),从而不间断地得到新的随机数;
4) 无论什么时候,都可以给 srand()

提供一个新的种子,从而进一步 随机化 rand()的输出

结果。
以下是一个产生随机数的例子:

需要首先使用随机数 种子 初始化,srand 函数:
#i nclude <stdlib.h>
#i nclude <stdio.h>
#i nclude <time.h>//使用当前时钟做种子

void main( void )
{
int i;
srand( (unsigned)time( NULL ) );//初始化随机数

/* 打印 10 个随机数. */
for( i = 0; i < 10;i++ )
printf( " %d\n", rand() );
}       

  

rand

 

(产生随机数)

 

相关函数
srand 

 

表头文件
#include<stdlib.h> 

 

定义函数
int rand(void) 

 

函数说明