Veröffentlicht 28. Mai 200124 j 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
28. Mai 200124 j Hm, vielleicht geht bei dem cast etwas in die Hose. Versuch mal die uebliche Variante: srand((unsigned int) clock()); Uli
29. Mai 200124 j 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
30. Mai 200124 j 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
30. Mai 200124 j 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
30. Mai 200124 j 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
30. Mai 200124 j muß bei srand((unsigned)sek) das unsigned enthalten sein.ich habs raus genommen is nix passiert.was bringts. cu mohamet
30. Mai 200124 j 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
31. Mai 200124 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.