C++ uniform_int_distribution離散均勻分布類用法詳解

c++
小云
571
2023-09-16 06:58:27
欄目: 編程語言

C++的uniform_int_distribution是一個(gè)離散均勻分布的類,用于生成指定范圍內(nèi)的隨機(jī)整數(shù)。

uniform_int_distribution的用法如下:

  1. 引用頭文件

首先要引用頭文件。

#include <random>
  1. 創(chuàng)建隨機(jī)數(shù)引擎

uniform_int_distribution需要一個(gè)隨機(jī)數(shù)引擎來生成隨機(jī)數(shù)??梢允褂媚J(rèn)的隨機(jī)數(shù)引擎std::default_random_engine,也可以使用其他的隨機(jī)數(shù)引擎。

std::default_random_engine generator;
  1. 創(chuàng)建uniform_int_distribution對(duì)象

uniform_int_distribution的模板參數(shù)是要生成的隨機(jī)數(shù)的類型,如int、unsigned int等。

std::uniform_int_distribution<int> distribution(min_value, max_value);

其中min_value和max_value是生成隨機(jī)數(shù)的范圍。

  1. 生成隨機(jī)數(shù)

使用uniform_int_distribution的成員函數(shù)operator()來生成隨機(jī)數(shù)。

int random_number = distribution(generator);

這樣就可以生成一個(gè)范圍在min_value和max_value之間的隨機(jī)整數(shù)。

下面是一個(gè)完整的例子:

#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;
}

輸出結(jié)果可能為:4 2 5 1 6 3 6 5 2 4,這是10個(gè)范圍在1到6之間的隨機(jī)整數(shù)。

0