C/C++要产生随机数的方法一般是采用rand()函数核srand()函数来实现的。

rand()函数返回的是一个伪随机数,这个函数内部采用线性同余法来实现伪随机数,而这个伪随机数是在一定范围内可以看作是随机的。rand()函数返回的随机数的范围在0~RAND_MAX之间,这个RAND_MAX的定义在头文件<stdlib.h>中:

#define RAND_MAX 0x7fff

使用的时候可以对某个数取余以产生某个数范围内的随机数:

//产生100内的随机数
int num = rand() % 1024;

但是这样的话每次程序运行的随机数都是一样的,因此就需要用到srand()函数来设置随机种子:

srand((int)time(0));
int num = rand() % 1024;

这样设置之后每次程序运行得到的随机数就不一定是一样的。

要注意,这个方法得到的随机数是随机整数来的,要想获取随机浮点数,可以这样做:

srand((int)time(0));
double num = rand() / double(RAND_MAX);

这样得到的是一个0-1的浮点数。

故乡的歌
是一支清远的笛
总在有月亮的晚上
响起
故乡的面貌
却是一种模糊的怅望
仿佛雾里的 挥手别离
离别後
乡愁是一棵没有年轮的树
永不老去

-- 席慕蓉