一、随机数序列的产生
在软件测试、游戏等应用场合,经常需要用到随机数序列。在C语言中,随机数可以用rand()函数来产生。每次调用rand()函数,总会返回一个随机整数值,范围在0~RAND_MAX之间。对于int类型,RAND_MAX的值为32767。
程序中引用rand()函数时,必须在程序的开头使用#include 语句,把stdlib.h头文件包含在内。
#include
#include
void main( void )
{
int
i;
for( i=0; i<10; i++ )
printf(" %d", rand());
printf("\n");
}
程序运行以后,在屏幕上将显示出10个看上去没有明显规律性的整数。当这个序列数很大的时候,基本上能够呈现正态分布的特征,我们可以把它当成一个随机数序列来使用。
但是,当我们重复执行这个程序时,仔细观察可以发现,每次执行程序产生的数字序列是完全相同的,如下图所示。这是怎么回事呢?
原来,这个所谓的随机数序列实际上是以某个称为种子的数为基础,根据某个复杂的公式推算出来的,只能称为伪随机数字序列。
当计算机正常开机后,这个种子的值是预定了的,默认为1,所以在一台计算机的一次开机之后产生的默认伪随机序列总是相同的。
在C语言中,还可以利用随机函数random()产生伪随机数序列,但random()函数不是ANSI
C标准ÿ