c++ default_random_engine 使用方法
时间: 2023-08-03 15:03:37 浏览: 259
C++标准库中的`default_random_engine`是一个随机数生成器,它可以生成符合特定分布的随机数序列。下面是使用方法的示例代码:
```c++
#include <iostream>
#include <random>
int main() {
std::default_random_engine generator; // 默认构造函数,使用系统时间作为种子
std::uniform_int_distribution<int> distribution(1, 6); // 均匀分布,生成1~6的整数
for (int i = 0; i < 10; ++i) {
std::cout << distribution(generator) << " "; // 输出生成的随机数
}
std::cout << std::endl;
return 0;
}
```
在上面的代码中,`default_random_engine`使用默认构造函数,它使用系统时间作为种子。然后,我们定义了一个`uniform_int_distribution`对象,生成1~6的整数。最后,我们使用`distribution`对象和`generator`对象来生成随机数。
需要注意的是,每次运行程序生成的随机数序列都是不同的,因为`default_random_engine`使用的种子是随机的。如果需要生成相同的随机数序列,可以使用`default_random_engine`的构造函数指定种子。
相关问题
c++ default_random_engine 仅使用该生成器生成随机数
`default_random_engine`生成的随机数序列是伪随机数序列,可以通过指定种子来控制生成的随机数序列。如果只使用`default_random_engine`生成随机数,可以使用以下示例代码:
```c++
#include <iostream>
#include <random>
int main() {
std::default_random_engine generator(123); // 指定种子,生成固定的随机数序列
std::uniform_int_distribution<int> distribution(1, 6); // 均匀分布,生成1~6的整数
for (int i = 0; i < 10; ++i) {
std::cout << distribution(generator) << " "; // 输出生成的随机数
}
std::cout << std::endl;
return 0;
}
```
在上面的代码中,我们使用`default_random_engine`的构造函数指定种子为`123`,这样每次运行程序生成的随机数序列都是相同的。然后,我们定义了一个`uniform_int_distribution`对象,生成1~6的整数。最后,我们使用`distribution`对象和`generator`对象来生成随机数。
需要注意的是,如果指定的种子相同,那么生成的随机数序列也是相同的。如果需要生成不同的随机数序列,可以使用不同的种子。
c++ default_random_engine 仅使用该生成器生成随机数,不要使用各种分布
如果只使用`default_random_engine`生成随机数,而不使用各种分布,可以使用以下示例代码:
```c++
#include <iostream>
#include <random>
int main() {
std::default_random_engine generator; // 默认构造函数,使用系统时间作为种子
for (int i = 0; i < 10; ++i) {
std::cout << generator() << " "; // 输出生成的随机数
}
std::cout << std::endl;
return 0;
}
```
在上面的代码中,我们使用`default_random_engine`的默认构造函数,它使用系统时间作为种子。然后,我们使用`generator()`函数来生成随机数。
需要注意的是,每次运行程序生成的随机数序列都是不同的,因为`default_random_engine`使用的种子是随机的。如果需要生成相同的随机数序列,可以使用`default_random_engine`的构造函数指定种子。
阅读全文