Helo da! Ich fange gerade an, in C++ zu kodieren, und ich bin nicht sicher, wie man Zufallszahlengeneratoren richtig verwendet. Zum Beispiel brauche ich Nummern aus dem Bereich [0,30000], um sicherzustellen, dass ich nicht nur kleine Zahlen aus meinem Bereich bekomme. Meine Funktion:mt19937 und Normalverteilung
std::random_device rd;
std::mt19937 rng(rd());
int myRand(int i) {
std::normal_distribution<double> distribution(30, 1500);
double temp=distribution(rng);
if(temp<0){
temp*=(-1);
}
return (int) std::round(temp)%i;
}
Würden Sie bitte hilft mir normal_distribution richtig zu konfigurieren?
Das ist eine wirklich wirklich seltsame Distribution, die Sie dort berechnen. Was ist die beabsichtigte Verteilung? – harold
Ganz ehrlich zu Ihnen, ich habe diese Verteilung auf einer Website gefunden. Alles, was ich brauche, sind viele Zahlen aus [0, n]. Jede Zahl sollte dieselbe Wahrscheinlichkeit haben, ausgewählt zu werden. – ogarogar
Das ist eingebaut, siehe 'uniform_int_distribution'. – harold