Brauche Hilfe für Zufallszahlen
-
Kann mir einer bitte helfen?
Ich muss in einem Programm Zufallszahlen ausgeben,
aber ich weiß jetzt nicht wie man das genau machen könnte,
dass die Zahlen bei jedem Programmstart variieren.
Ein Freund hat gesagt das kann man mit der Include "ctime" machen.
Stimmt das?
-
srand - initialisiert den zufallsgenerator
time - damit den zufallsgenerator initialisieren
rand - zufallszahl holen
-
eXuLeD schrieb:
Kann mir einer bitte helfen?
Ich muss in einem Programm Zufallszahlen ausgeben,
aber ich weiß jetzt nicht wie man das genau machen könnte,
dass die Zahlen bei jedem Programmstart variieren.
Ein Freund hat gesagt das kann man mit der Include "ctime" machen.
Stimmt das?Zufallszahlen erzeugst du mit den Methoden rand() und srand(). Die Funktion srand() initalisiert den Zufallsgenerator mit dem sogenannten Samen (der per Argument übergeben wird), aus welchem letztendlich mit der Funktion rand() Zufallszahlen generiert werden. (Genaueres zu den Funktion siehe die Links)
Um jetzt den Samen möglichst variabel zu halten, benutzt man dazu meißtens die aktuelle Zeit (hier kommt die Header-Datei ctime ins Spiel...)
Beispiel: (Ungetestet)
#include <iostream> #include <ctime> #include <cstdlib> using namespace std; int main() { srand(time(0)); // Zufallsgenerator mit aktueller Zeit initalisieren. for(unsigned int i = 0; i < 10; ++i) cout << "zufallszahl " << i + 1 << ": " << rand() << endl; return 0; }
Caipi
-
Danke!
Ich müsste auch wissen wie ich dann die Zeit für z.b. 3sekunden stehnbleibe lasse.
Man hat mir gesagt man kann es mit sleep(3000); //3000=3sekunden machen,
aber es klappt nicht.
Braucht man dafür eine Include?
-
#include <windows.h>
EDIT: Ich seh grad, du musst es auch gross schreiben:
::Sleep(3000);
Gruss,
DeSoVoDaMu
-
Für Pseudozufallszahlen kannst du dir auch selber eine Funktion schreiben:
int Rand(int min, int max) { static int z = timeGetTime() % 100; z = 16807*(z%127773)-2836*(z/127773); if(z < 0) z += 2147483647; int delta = max-min+1; return min + z%delta; }
-
@Vertexwahn selbst rand liefert nur Pseudozufallszahlen.
Wie zufällig sind den deine Zufallszahlen?
Wie ist der Mittelwert?
Wie ist die Standardabweichung?
Sind Sie Gauss oder anders verteilt?