Bir Markov zinciri gibi bir şeyin simülasyonunu yapmaya çalışıyorum ve s_i - s_j durumunun değişimini simüle etmek için discrete_distribution'ı kullanıyorum. Ama tabi ki, bu bir Matrix, bir vektör değil. Ben de deniyorum."discrete_distribution" vektörünün ayarlanması C++
std::vector <uint16_t> v {{...},
{...},
...
{...},};
std::vector <std::discrete_distribution <uint16_t> > distr(n, std::distribution <uint16_t> (v.begin(), v.end()));
ancak bu çalışmaz.
not: uint16_t bir vektör
std::vector <std::discrete_distribution <uint16_t> > distr(n, std::distribution <uint16_t> (v.begin(), v.end()));
doğru olmadığını bildiğim bu answer
dayalı
// 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()));
çalışır Sadece 1 vektörü çalışırsanız, bu edilir ancak, v1 'den v' 'ye kadar olan değişimin, farklı dağılımların
"v1" ve benzeri adlandırılan bu atılan vektörleri oluşturmak yerine, neden iç içe geçmişini başlatılamıyor tek vuruşta ctor? – tadman
Çünkü nasıl yapacağımı bilmiyordum. Ama şu anki cevap ile biliyorum. –
Oldukça basit bir şey ve Vittorio bunu iyi açıklıyor. Bu soru esas olarak bununla ilgili mi, yoksa "discrete_distribution" bölümünde hala bir sorun mu var? – tadman