c语言随机数的产生方法

写程序时候有时候需要产生一个随机数,c语言有内建的随机数产生函数rand();

它包含在stdlib库中

例如

#include

int a;

a=rand();

这时,a变量内存的是0到32767(32位操作系统)之间的一个随机数。

但是虽然每次调用rand(),函数时值不一样,他们是一个系列,可是下一次运行程序时候,出来的随机数还是这个序列。

这是因为rand()函数要产生一个随机数必须依靠一个种子数,如果没有约定,种子数就是1;

这样每次程序运行产生的第一个随机数都一样,第二个也一样以后都一样。

为了解决这个问题,在调用rand()函数之前先调用一次srand(值)函数;这样随着值的不同每次程序运行产生的第n个值也就不同了。为了方便,大部分程序员都用时间来作为值。

例如:

srand(time(NYLL));

这样种子数就是随时间变化的数,rand()函数随机出来的数就不是固定的序列了。

这时产生的随机数是0到32767之间的一个数,我们如果需要产生0到x之间的数可以取余操作例如产生0到10之间的数,可以用:

a=rand()%11;

产生5到10之间的数

a=5+rand()%(11-5);

产生100到999之间的数

a=100+rand()%(1000-100);

产生x到y之间的数:

a=x+rand()%(y+1-x);

这样就可以产生随机数了;

你可能感兴趣的:(笔记,c语言,开发语言)