C++的uniform_int_distribution是一個離散均勻分布的類,用于生成指定范圍內的隨機整數。
uniform_int_distribution的用法如下:
首先要引用
#include <random>
uniform_int_distribution需要一個隨機數引擎來生成隨機數。可以使用默認的隨機數引擎std::default_random_engine,也可以使用其他的隨機數引擎。
std::default_random_engine generator;
uniform_int_distribution的模板參數是要生成的隨機數的類型,如int、unsigned int等。
std::uniform_int_distribution<int> distribution(min_value, max_value);
其中min_value和max_value是生成隨機數的范圍。
使用uniform_int_distribution的成員函數operator()來生成隨機數。
int random_number = distribution(generator);
這樣就可以生成一個范圍在min_value和max_value之間的隨機整數。
下面是一個完整的例子:
#include <iostream>
#include <random>
int main() {
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(1, 6);
for (int i = 0; i < 10; ++i) {
int random_number = distribution(generator);
std::cout << random_number << " ";
}
return 0;
}
輸出結果可能為:4 2 5 1 6 3 6 5 2 4,這是10個范圍在1到6之間的隨機整數。