什么是 rand() 函数?

C++ rand() 函数的用法C++ rand() 函数的用法


C++ rand() 函数的用法


rand() 是 C++ 标准库中的一个函数,用于生成伪随机整数。它基于一个伪随机数生成器 (PRNG),该生成器使用一个种子值来生成一个看似随机的数字序列。

rand() 函数的语法

```cpp int rand(); ```

返回类型:

rand() 返回一个伪随机整数,其范围为 0 到 RAND_MAX 之间,其中 RAND_MAX 是一个常量,表示 PRNG 所能生成的随机数。

使用方法

要使用 rand() 函数,您需要先初始化 PRNG。您可以通过调用 srand() 函数来实现,它接受一个种子值作为参数:

```cpp srand(seed); ```

种子值是任何整数,它将影响 rand() 函数所生成数字序列的起始点。如果未调用 srand(),则 rand() 将使用系统时钟作为初始种子。

调用 srand() 后,您可以通过调用 rand() 函数来生成伪随机整数:

```cpp int random_number = rand(); ```

rand() 函数的限制

虽然 rand() 函数广泛用于生成伪随机数,但它有一些限制:

非真随机:rand() 函数生成的数字不是真随机的,它们是基于一个确定性算法。 重复性:使用相同的种子值,rand() 函数将生成相同的数字序列。 预测性:如果知道了种子值,就可以预测 rand() 函数所生成的数字序列。

替代方案

在某些情况下,您可能需要使用更强大的随机数生成器。C++ 标准库提供了以下替代 rand() 函数的选项:

std::random_dev:生成真随机数。 std::mt19937:一种梅森旋转生成器,生成高质量的伪随机数。 std::normal_distribution:生成服从正态分布的随机数。

结论