我想用不同的方法创建一组正态分布。 像这样:
#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 ++的新手,所以也许这是一个非常基本的问题。
答案 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
}