📅  最后修改于: 2023-12-03 15:29:54.048000             🧑  作者: Mango
在C++中,std::uniform_int_distribution
是用于生成指定范围内的等概率整数的随机变量分布的类。它继承自std::uniform_int_distribution
类,并提供了reset()
方法,用于重置分布的状态,即将生成器的状态设置为初始状态。
void reset();
该方法没有参数。
该方法没有返回值。
下面的示例演示了如何使用reset()
方法。
#include <iostream>
#include <random>
int main(){
std::mt19937 rng(123);
std::uniform_int_distribution<int> dist(0, 9);
for(int i = 0; i < 5; i++){
std::cout << dist(rng) << " ";
}
std::cout << std::endl;
dist.reset();
for(int i = 0; i < 5; i++){
std::cout << dist(rng) << " ";
}
std::cout << std::endl;
return 0;
}
输出:
1 6 1 6 4
4 0 6 4 6
首先,我们使用std::mt19937
作为随机数生成器,并使用std::uniform_int_distribution<int>
类初始化一个分布,该分布生成介于0和9之间(包括0和9)的整数,然后生成并打印随机数序列。
然后,我们调用了reset()
方法来重置分布,然后再次生成并打印随机数序列。
从输出可以看出,运行两次时,它们都会生成不同的序列,这是由于我们在每次序列被生成后都重置了分布的状态。