私はマルコフチェーン のようなものをシミュレーションし、discrete_distributionを使って状態s_iからs_jの変化をシミュレートしようとしています。 もちろん、これはベクトルではなく行列です。 だから私は試してみます。"discrete_distribution"のベクトルを設定する方法
std::vector <uint16_t> v {{...},
{...},
...
{...},};
std::vector <std::discrete_distribution <uint16_t> > distr(n, std::distribution <uint16_t> (v.begin(), v.end()));
しかしこれは機能しません。
注:私はちょうど1ベクトルをしようとした場合、これはuint16_tのベクトルである。このanswer
に基づいて
// CHANGE v by v[0]
std::vector<std::discrete_distribution <uint64_t>> distr(1, std::discrete_distribution <uint64_t> (vecs[0].begin(), vecs[0].end()));
に動作します私は
std::vector <std::discrete_distribution <uint16_t> > distr(n, std::distribution <uint16_t> (v.begin(), v.end()));
が正しくないことを知っていますしかし、私は、v1からvへの変化について、離散分布のベクトルを使用することが可能であることを示すために
これらのスローアウェイベクトルを 'v1'というように作成するのではなく、ネストされたveワンショットでctor? – tadman
私はそれを行う方法を知らなかったので。しかし、以下の答えで今私は知っている。 –
これはかなりシンプルなことですが、ヴィットリオはそれをうまく説明します。この質問は主にそれに関するものですか、 'discrete_distribution'部分にはまだ問題がありますか? – tadman