voelki Geschrieben 28. Mai 2001 Geschrieben 28. Mai 2001 Hi, weiss jemand wie ich mit srand den c-Zufallsgenerator neu initalisieren kann? Irgendwie lässt sich srand((unsigned) time(NULL)); Nur einmal pro Programmlauf ausführen, bzw. hat beim mehrfachen Ausführen keinen Effekt mehr. Danke für eure Hilfe Völki
gajUli Geschrieben 28. Mai 2001 Geschrieben 28. Mai 2001 Hm, vielleicht geht bei dem cast etwas in die Hose. Versuch mal die uebliche Variante: srand((unsigned int) clock()); Uli
juergi66 Geschrieben 28. Mai 2001 Geschrieben 28. Mai 2001 Versuch es mal so: long sek; time(&sek); srand((unsigned)sek);
voelki Geschrieben 29. Mai 2001 Autor Geschrieben 29. Mai 2001 danke für die antworten, aber ich hab es mitlerweile selbst lösen können, ich hätte srand einfach nur einmal initalisieren müssen. So gehts jetzt... Bye Völki
skiddoo Geschrieben 30. Mai 2001 Geschrieben 30. Mai 2001 Original erstellt von Onkel Jürgen: <STRONG> long sek; time(&sek); srand((unsigned)sek); </STRONG> kann mir jemand sagen was da genau passiert. ich weiß das mit long sek; eine variable sek vom typ long deklariert wird.und das srand() für die funktion rand() einen neuen ausgangswert bestimmt. aber der rest. danke mohamet
skiddoo Geschrieben 30. Mai 2001 Geschrieben 30. Mai 2001 Original erstellt von Onkel Jürgen: <STRONG> long sek; time(&sek); srand((unsigned)sek); </STRONG> kann mir jemand sagen was da genau passiert. ich weiß das mit long sek; eine variable sek vom typ long deklariert wird.und das srand() für die funktion rand() einen neuen ausgangswert bestimmt. aber der rest. danke mohamet
voelki Geschrieben 30. Mai 2001 Autor Geschrieben 30. Mai 2001 Hallo, ich versuchs mal zu erklären: long sek; //Variable, die die aktuelle Systemzeit in Sek aufnimtt time(&sek);//Eben diese Zeit in Variable schreiben srand((unsigned)sek); //Berechnen der random-Tabelle mit der Systemzeit in Sek als Startwert Man muss unbedingt darauf achten, das die initalisierung nur einmal pro programm aufgerufen wird. Sonst erhält man identische Werte. rand() gibt im Prinzip nur den nächsten Wert dieser Tabell wieder. Bye Völki
skiddoo Geschrieben 30. Mai 2001 Geschrieben 30. Mai 2001 muß bei srand((unsigned)sek) das unsigned enthalten sein.ich habs raus genommen is nix passiert.was bringts. cu mohamet
gajUli Geschrieben 30. Mai 2001 Geschrieben 30. Mai 2001 Original erstellt von voelki: <STRONG> Man muss unbedingt darauf achten, das die initalisierung nur einmal pro programm aufgerufen wird. Sonst erhält man identische Werte. </STRONG> Nicht unbedingt, das haengt davon ab, wieviel Zeit zwischen zwischen den Initialisierungaufrufen verstreicht. Uli
voelki Geschrieben 31. Mai 2001 Autor Geschrieben 31. Mai 2001 Jaja, das stimmt schon...wenn mehr als 1 Sek zwischen den initalisierungen ist dann gehts auch...wenn man allerdings in ner Schleife viele Werte erzeugen will ist das absolut inakzeptabel... Gruss Völki
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden