Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

srand neu initalisieren?

Empfohlene Antworten

Veröffentlicht

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

Versuch es mal so:

long sek;

time(&sek);

srand((unsigned)sek); ;)

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

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

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

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

muß bei srand((unsigned)sek) das unsigned enthalten sein.ich habs raus genommen is nix passiert.was bringts.

cu

mohamet

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

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.