📅  最后修改于: 2023-12-03 14:46:55.106000             🧑  作者: Mango
C++中的rand()是一个用于生成随机整数的函数,它的基本作用是能够在程序执行的时候,每次生成一个不同的随机数。在实际开发中,它经常用于随机数生成,数组的随机化,游戏开发等领域。
使用rand()函数前需要包含头文件 <stdlib.h> 或
int rand(void);
该函数没有参数,返回一个整型数,表示所生成的随机数的范围在0~RAND_MAX之间,其中RAND_MAX是一个常量,代表所生成的最大随机数,它的值一般为32767(在32位机器上)。
如果我们需要指定随机数的范围,如生成1~10之间的随机整数,可以通过如下代码实现:
int num = rand() % 10 + 1;
其中rand() % 10
可以生成0~9的随机整数,再加上1,就可以生成1~10的随机整数了。
rand()函数的表现是在程序运行时产生随机数的。由于计算机的运算速度太快,rand()函数得出的随机数序列往往是预测性的。为了产生更随机的数列,需要提供一个随机数种子,这个种子作为rand()函数的初始值。当种子相同时,rand()函数产生的随机数序列也相同。
种子的初始化方法是:
void srand(unsigned int seed);
其中,参数seed是设定的随机数种子。种子的值是可以被获取的,比如我们可以使用当前时间作为种子,一般不需要手动设定。如果不设置种子,则默认为1。
下面是一个用rand()函数生成随机数的例子:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
srand((unsigned)time(NULL));
for(int i = 0; i < 10; i++) {
int num = rand() % 50 + 1;
cout << num << " ";
}
return 0;
}
在运行这段代码时,可以看到输出10个范围在1~50之间的随机整数。需要注意的是,每次运行结果都不同,这是因为种子值每次随机生成。
rand()函数是一个C++中常用的函数,它提供了一个简单的方法生成随机数。但使用时需要注意,由于随机数是根据一个基于时间的种子缩放到一定的范围内,所以生成的随机数是伪随机数,并非完全随机,需要在实际应用中进行测试和验证。