用c++写一个随机数生成器
时间: 2024-06-17 13:07:53 浏览: 166
用C++编写一个随机数生成器,可以使用C++标准库中的random头文件。具体步骤如下:
1. 在头文件中包含random头文件: #include <random>
2. 创建一个随机数生成器引擎,可以使用mt19937引擎: std::mt19937 rng;
3. 设置随机数种子,可以使用时间作为种子: rng.seed(std::random_device()());
4. 创建一个分布器,指定生成随机数的范围: std::uniform_int_distribution<int> dist(0, 100);
5. 通过调用分布器的operator()方法生成随机数: int random_num = dist(rng);
6. 可以使用循环语句生成多个随机数。
下面是一个简单的示例代码:
#include <iostream>
#include <random>
int main() {
std::mt19937 rng;
rng.seed(std::random_device()());
std::uniform_int_distribution<int> dist(0, 100);
for (int i = 0; i < 10; ++i) {
int random_num = dist(rng);
std::cout << random_num << " ";
}
std::cout << std::endl;
return 0;
}
相关问题
c++生成一个随机数
你可以使用 `<random>` 头文件中的随机数生成器来生成随机数。下面是一个使用 C++ 的 `<random>` 头文件生成随机数的示例代码:
```cpp
#include <iostream>
#include <random>
int main() {
// 创建一个随机数引擎
std::random_device rd;
std::mt19937 gen(rd());
// 定义随机数的范围
int min = 1;
int max = 100;
// 创建一个分布对象来指定随机数范围
std::uniform_int_distribution<> dis(min, max);
// 生成随机数
int random_num = dis(gen);
// 输出结果
std::cout << "随机数: " << random_num << std::endl;
return 0;
}
```
上述代码中,我们首先使用 `std::random_device` 来获取一个种子,然后将该种子传递给 `std::mt19937` 引擎。接下来,我们使用 `std::uniform_int_distribution` 来定义随机数的范围,并将引擎传递给该分布对象。最后,调用 `dis(gen)` 来生成一个随机数。
这样,运行程序时,就会输出一个在指定范围内的随机数。
c++的随机数生成器
C++中的随机数生成器主要使用random库中的两个类:随机数引擎类和随机数分布类。
随机数引擎类是用来生成随机数的,调用这个类会生成一个调用运算符。该运算符不接受任何参数,并返回一个随机的unsigned整数。常与随机数分布类共同使用,很少单独使用。
随机数分布类需要以随机数引擎作为参数(即必须先定义随机数引擎类)。常用方法有:
- uniform_int_distribution:指定范围的随机非负数
- uniform_real_distribution:指定范围的随机实数
- bernoulli_distribution:指定概率的随机布尔值
以下是一个生成随机数的例子:
```c++
#include <iostream>
#include <random>
int main() {
// 生成一个随机数引擎
std::default_random_engine e;
// 生成一个指定范围的随机数分布
std::uniform_int_distribution<int> u(0, 9);
// 生成10个随机数
for (int i = 0; i < 10; i++) {
std::cout << u(e) << std::endl;
}
return 0;
}
```
以上代码中,我们首先生成了一个随机数引擎`std::default_random_engine e`,然后生成了一个指定范围的随机数分布`std::uniform_int_distribution<int> u(0, 9)`,最后使用循环生成了10个随机数。
阅读全文