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 Zitieren
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 Zitieren
juergi66 Geschrieben 28. Mai 2001 Geschrieben 28. Mai 2001 Versuch es mal so: long sek; time(&sek); srand((unsigned)sek); Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
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 Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.