voelki Geschrieben 28. Mai 2001 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gajUli Geschrieben 28. Mai 2001 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
juergi66 Geschrieben 28. Mai 2001 Teilen Geschrieben 28. Mai 2001 Versuch es mal so: long sek; time(&sek); srand((unsigned)sek); Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
voelki Geschrieben 29. Mai 2001 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skiddoo Geschrieben 30. Mai 2001 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skiddoo Geschrieben 30. Mai 2001 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
voelki Geschrieben 30. Mai 2001 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
skiddoo Geschrieben 30. Mai 2001 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
gajUli Geschrieben 30. Mai 2001 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
voelki Geschrieben 31. Mai 2001 Autor Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.