<random>

<random>

std::bernoulli_distribution

class bernoulli_distribution;
伯努利分布 (Bernoulli distribution)
根据伯努利分布生成随机数的分布。bool伯努利分布描述如下概率质量函数



其中“真”的概率为truep,而“假”的概率为false(1-p)

这代表了最简单的分布函数之一:抛硬币的分布符合伯努利分布,其正面朝上的概率约为0.5.

分布参数 p构造时设置。

要生成遵循此分布的随机值,请调用其成员函数 operator()

成员类型

以下别名是伯努利分布 (bernoulli_distribution):

成员类型定义说明
result_typebool生成的the type of the results
param_type未指定 (not specified)成员 param 返回的类型。

成员函数


分布参数


非成员函数


示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// bernoulli_distribution
#include <iostream>
#include <random>

int main()
{
  const int nrolls=10000;

  std::default_random_engine generator;
  std::bernoulli_distribution distribution(0.5);

  int count=0;  // count number of trues

  for (int i=0; i<nrolls; ++i) if (distribution(generator)) ++count;

  std::cout << "bernoulli_distribution (0.5) x 10000:" << std::endl;
  std::cout << "true:  " << count << std::endl;
  std::cout << "false: " << nrolls-count << std::endl;

  return 0;
}

可能的输出
bernoulli_distribution (0.5) x 10000:
true:  4994
false: 5006


另见