Die Erzeugung eines random-Doppel zwischen einer Reihe von Werten

Im Moment Probleme beim generieren von zufälligen zahlen zwischen -32.768 und 32.768 sein. Es gibt mir immer die gleichen Werte, aber mit einer kleinen änderung in der decimal-Feld. ex : 27.xxx.

Heres mein code, jede mögliche Hilfe würde geschätzt.

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;

int main()
{
    srand( time(NULL) );
    double r = (68.556*rand()/RAND_MAX - 32.768);
    cout << r << endl;
    return 0;
}
Haben Sie versucht, mit einer Schleife. Da die Zeit(NULL) ändert sich nicht, viel von einer Sekunde auf die nächste, die Chancen sind, dass Sie die gleiche Anzahl jedes mal. gettimeofday()'s Mikrosekunde zählen kann auch besser arbeiten.
Vorbei an aufeinander folgenden Werten zu srand sollte und in der Regel nicht in der Nähe ergibt sich auch aus den ersten Aufruf rand. (Obwohl, da gibt es keine tatsächlichen Anforderungen an die Qualität der rand ich denke, YMMV.)

InformationsquelleAutor Olivier | 2013-02-01

Schreibe einen Kommentar