溫馨提示×

C++ Random庫怎樣實現(xiàn)不同分布

c++
小樊
83
2024-07-21 03:16:04
欄目: 編程語言

C++中的隨機(jī)數(shù)庫<random>提供了各種不同分布的隨機(jī)數(shù)生成器。你可以使用不同的分布對象來生成滿足特定分布的隨機(jī)數(shù)。以下是一些常見的隨機(jī)數(shù)分布及其實現(xiàn)方法:

  1. 均勻分布(Uniform Distribution):
#include <random>
#include <iostream>

int main() {
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(1, 6); // 生成1到6之間的均勻分布的隨機(jī)數(shù)

    for (int i = 0; i < 10; i++) {
        std::cout << dis(gen) << " ";
    }

    return 0;
}
  1. 正態(tài)分布(Normal Distribution):
#include <random>
#include <iostream>

int main() {
    std::random_device rd;
    std::mt19937 gen(rd());
    std::normal_distribution<> dis(0.0, 1.0); // 均值為0,標(biāo)準(zhǔn)差為1的正態(tài)分布

    for (int i = 0; i < 10; i++) {
        std::cout << dis(gen) << " ";
    }

    return 0;
}
  1. 伯努利分布(Bernoulli Distribution):
#include <random>
#include <iostream>

int main() {
    std::random_device rd;
    std::mt19937 gen(rd());
    std::bernoulli_distribution dis(0.5); // 以0.5的概率生成true,以0.5的概率生成false

    for (int i = 0; i < 10; i++) {
        std::cout << dis(gen) << " ";
    }

    return 0;
}

除了上述示例中的分布類型外,<random>庫還提供了其他分布類型,例如泊松分布(Poisson Distribution)、指數(shù)分布(Exponential Distribution)等。你可以根據(jù)自己的需求選擇合適的分布類型來生成隨機(jī)數(shù)。

0