c++生成随机数
时间: 2023-07-04 09:15:24 浏览: 118
在C++中生成随机数可以使用 `<cstdlib>` 头文件中的 `rand()` 函数。该函数可以生成一个范围在 0 到 RAND_MAX 之间的随机整数,其中 RAND_MAX 是一个常量,代表生成的最大随机数。
以下是一个使用 rand() 函数生成随机数的示例代码:
```c++
#include <cstdlib> // 包含rand()函数所需的头文件
#include <ctime> // 包含time()函数所需的头文件
#include <iostream>
int main()
{
// 用当前时间作为随机数生成器的种子
std::srand(std::time(nullptr));
// 生成 10 个随机数
for (int i = 0; i < 10; ++i) {
std::cout << std::rand() << std::endl;
}
return 0;
}
```
在上述代码中,我们使用了 `srand()` 函数将当前时间作为随机数生成器的种子,这样每次运行程序都会生成不同的随机数序列。然后使用 `rand()` 函数生成 10 个随机数并输出。
相关问题
c++生成随机数数组
以下是C++生成随机数数组的示例代码:
```cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <random>
using namespace std;
int main() {
const int n = 10; // 数组长度
int arr[n]; // 定义数组
default_random_engine e(time(0)); // 随机数引擎类
uniform_int_distribution<int> u(1, 100); // 随机数分布类,产生1~100之间的整数
for (int i = 0; i < n; i++) {
arr[i] = u(e); // 生成随机数并存入数组
cout << arr[i] << " "; // 输出数组元素
}
cout << endl;
return 0;
}
```
c++生成随机数函数
在C++中,生成随机数通常会利用`<random>`库提供的功能。这个库包含了各种类型的随机数生成器以及相关的算法。下面是一些常用的随机数生成函数:
1. **生成均匀分布**:
- `std::uniform_int_distribution<int>`用于生成整数,例如生成0到范围上限之间的随机数:
```cpp
std::default_random_engine generator; // 根据需要选择随机引擎(如全局时间)
std::uniform_int_distribution<int> dist(0, 99); // 范围是[0, 99]
int random_number = dist(generator);
```
2. **生成其他分布**:
- `std::normal_distribution<double>`可用于生成正态分布(常态分布)的随机数:
```cpp
std::normal_distribution<double> normal_dist(0.0, 1.0); // 均值=0,标准差=1
double gaussian_number = normal_dist(generator);
```
3. **初始化随机数种子**:
- 可以通过`std::srand(time(nullptr))`设置随机数种子,使其基于当前系统时间变化,避免每次程序运行结果都一样。
4. **线程安全**:
- 如果在一个多线程环境中生成随机数,推荐使用`std::mt19937`(Mersenne Twister)引擎,它提供了线程安全的版本。
记得包含头文件 `<random>` 和 `<chrono>` 来使用这些功能。如果你需要更复杂的随机数生成需求,可能还需要结合其他库,如Boost.Random等。
阅读全文