C语言中随机函数的使用
在计算机很多应用中,关于随机数的使用是非常广泛的,例如,考试系统中的随机抽题等。
在Turbo C中,rand()和srand()都可以产生一个随机数。但在实际应用这两个函数时,会出现以下问题,利用rand()来生成随机数时,产生的随机数每次循环都是一样的,即使加上srand()函数确定一个基础值,也是和前一次一样,这样,就出现了产生的随机数不是随机的,而是重复出现的问题。
解决方案:
首先给srand()提供一个种子,它是一个unsigned int 类型,其取值范围从0-65535;
然后调用rand()它会根据srand()提供的种子值返回一个随机数,0-32767
以下是一个例子:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main(){
int i;
srand((unsigned)time(NULL));
for(i=0;i<10;i++){
printf("%6d\n",rand());
}
}
在计算机很多应用中,关于随机数的使用是非常广泛的,例如,考试系统中的随机抽题等。
在Turbo C中,rand()和srand()都可以产生一个随机数。但在实际应用这两个函数时,会出现以下问题,利用rand()来生成随机数时,产生的随机数每次循环都是一样的,即使加上srand()函数确定一个基础值,也是和前一次一样,这样,就出现了产生的随机数不是随机的,而是重复出现的问题。
解决方案:
首先给srand()提供一个种子,它是一个unsigned int 类型,其取值范围从0-65535;
然后调用rand()它会根据srand()提供的种子值返回一个随机数,0-32767
以下是一个例子:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main(){
int i;
srand((unsigned)time(NULL));
for(i=0;i<10;i++){
printf("%6d\n",rand());
}
}