c ++在循环中定义一组概率分布

时间:2019-10-25 19:58:16

标签: c++ loops random

我想用不同的方法创建一组正态分布。 像这样:

#include <random>
using namespace std;
std::default_random_engine generator;
std::normal_distribution<double> normal_1(0.0,std_1);
std::normal_distribution<double> normal_2(0.0,std_2);
// and so on until:
std::normal_distribution<double> normal_N(0.0,std_N);

我需要能够更改发行总数,这样循环才能更好地工作:

for (int i = 1; i<=N; i++){
std::normal_distribution<double> normal_i(0.0,std_i);
}

PD:我是C ++的新手,所以也许这是一个非常基本的问题。

1 个答案:

答案 0 :(得分:1)

古怪的人在评论中指出,std::vector可以胜任。

#include <random>
#include <iostream>
#include <vector>
using namespace std;
default_random_engine generator;


int main()
{
    vector<normal_distribution<double>> v = {};

    for (int i=1; i<=N; i++)
    {
        v.push_back(normal_distribution<double> (0.0,std_i));
    }
    //v[i-1](generator); generate a random number from the distribution i
}