Ich habe eine Reihe von Gewichtungen in einem Eigen::VectorXd
und würde gerne Stichproben aus dem Bereich der Indizes mit diesen Werten sind Wahrscheinlichkeiten. Wenn weights
ein std::vector
ist, kann ich dies tun:Probe von diskrete Verteilung mit Gewichten in Eigenen Vektor
std::random_device rd;
std::mt19937 rng(rd());
std::discrete_distribution<int> dist(weights.begin(), weights.end());
int val = dist(rng);
Was ist der beste Weg, dies zu tun, wenn weights
ein Eigen::VectorXd
ist? Kann es gemacht werden, ohne den Vektor zu kopieren und ohne den Sampler selbst zu schreiben?
Das in den Daten führen nicht direkt kopiert werden? – Flash
Welche Daten? Gewichte? Nein. – kangshiyin