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的浮点数。
#include <iostream>
#include <time.h>
#define RAND_MAX 0x7fff
int main() {
//产生100内的随机数
srand((int)time(0));
for( ;; )
{
int num = rand() % 1024;
std::cout << num << std::endl;
}
return 0;
}
如果文章或资源对您有帮助,欢迎打赏作者。一路走来,感谢有您!
txttool.com 说一段 esp56物联 查询128 IP查询