c++ - C++ 中的伯努利随机变量

标签 c++ random

<分区>

在 C++ 中获取伯努利分布随机变量的最简单方法是什么?我 我有一个非常量 p。 p从0开始,得到p+=0.01,直到p=1。 (“for”循环)我有这个想法:

声明大小为 100 的 int 数组,用零填充。每次 p 获得 +0.01 时,我将一个零更改为“1”...并获得一个随机数 %100。

好吃吗? 谢谢

最佳答案

您应该使用现代 C++(如果可能,C++11 或更高版本)。你可以这样做:

#include <random>
#include <iostream>

int main()
{
    std::random_device rd{}; // use to seed the rng 
    std::mt19937 rng{rd()}; // rng

    double p = 0.2; // probability
    std::bernoulli_distribution d(p);

    // generate 5 runs
    for(std::size_t i = 0; i < 5; ++i)
        std::cout << d(rng) << " ";
}

关于c++ - C++ 中的伯努利随机变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30128437/

相关文章:

c++ - 文件读取返回损坏的文件结尾

c++ - 使用 srand() 生成随机数

c++ - 来自随机数生成器包装器 (C++) 的令人困惑的内联行为

java - 希望使用 Java 创建随机数组

c# - 如何在 Windows 7 下记录来自非标准按键的按键事件

c++ - 初始化并声明 QFile

c++ - 过剩 - 按住一个键

java - 如何生成 0 到 9 之间的 1000 个随机数?

C++ - 在范围内生成遵循正态分布的随机数

javascript - 这是在 JavaScript 中生成安全随机字符串的好方法吗?