Ich versuche, die Zahl aus einer gleichmäßigen Verteilung der reellen Zahl im Bereich von [0, 1) zu generieren. Der Compiler erzeugt jedoch Zahlen, die außerhalb des [0, 1] Bereichs liegen. Hierout of range Zufallszahlengenerierung in C++ mit tr1
ist der Code:
int main(void) {
// Solver solve;
mt19937 mteng;
mteng.seed(rdtsc());
uniform_real<double> uniRealD;
double randomNum;
for (int index = 0; index < 10; index++){
randomNum = uniRealD(mteng);
if(randomNum<0.5)
cout<<index<<" no. random number is: "<<randomNum<<endl;
else
cout<<"number generate is not in range"<<endl;
}
return 0;
}
Alle Kommentare auf das, was mit dem Code falsch sein könnte? Ich benutze rdtsc()
als Samen.
Welche Zahlen erhalten Sie? – sarnold
hier sind die Zahlen: 2.59366e + 09, 2.34439e + 09, 3.48634e + 09, 3.36609e + 09, 3.68728e + 09, 1.83477e + 09, 3.47004e + 09, 1.14211e + 09, 2.24305e + 09, 1.05343e + 09, – cHaTrU
haben das schon gemacht! :) – cHaTrU