Einzelnen Beitrag anzeigen
Ungelesen 17.08.13, 14:01   #2
Quabla
Mitglied
 
Registriert seit: Oct 2010
Beiträge: 296
Bedankt: 151
Quabla ist noch neu hier! | 0 Respekt Punkte
Standard

wie funktioniert denn der zufalszahlen generator? ich nehmen mal an, das ist hier die methode rnd. allgemein, kann man zufallszahlengeneratoren einen so genannten "seed" übergeben. wenn man ein und den selben zufallsgenerator 2 mal mit dem gleichen seed aufruft, kommt auch die gleiche zahl raus. also guck am besten mal in die dokumentation dieser funktion, da gibt bestimmt was, was die systemzeit oder sowas als seed benutzt.


edit:
wenn du es gar nicht hinbekommst, schreib den zufallsgenerator einfach selber. hier ist mal ein linear kongruenter in c++. die zeilen in denen prev_rnd vorkommt, sorgen hier dafür, dass wenn man den generator ohne übergabeparameter mehrmals hintereinander ausführt, er trotzdem unterschiedliche zufallszahlen liefert. was aber nur dann funktioniert, wenn das programm in der zwischenzeit nicht beendet/ neu gestartet wird. ich tippe mal, dass der zufallsgenerator in vba ähnlich programmiert ist, und er deshalb immer mit einem speziefischem seed, in meinem fall der 0, anfängt, wenn man ihm nichts übergibt.
Code:
int rnd(int x = 0){
    static int prev_rnd = x;
    int m = 10000;
    int a = 1601;
    int b = 3456;
    if(x==0) x=prev_rnd;
    x = (a*x+b) % m;
    prev_rnd = x;
    return x;
}
der erzeugt jetzt zufallszahlen zwischen 0 und 10000. du musst also für deine zwecke:
Code:
i = Int((100 - 0 + 1) * Rnd()/10000. + 0)
verwenden
Quabla ist offline   Mit Zitat antworten