Zwei unterschiedliche zufallszahlen erzeugen.
-
http://www.cplusplus.com/reference/stl/
Hier hast du alle Container die C++ bietet.
Und hier eine beschreibung mit Beispiel zustd::random_shuffle()
http://www.cplusplus.com/reference/algorithm/random_shuffle/
-
Nexus schrieb:
Tim06TR schrieb:
2. natürlicher upper bound = 36??? das ist banane
Wie kommst du denn auf sowas?hab ich gelesen
Nexus schrieb:
Du musst noch viel lernen.

richtig ! ich bin dabei.
Nexus schrieb:
Du hast aber von srand() gelesen?
oookkkkaaaayyyy.
ähm das ändert natürlich einiges, darauf bin ich erst in diesem thread gestoßenNexus schrieb:
3. Mehr Infos zu dieser Funktion unter http://www.cplusplus.com/reference/algorithm/random_shuffle/.
ok das hilft sehr danke
-
Tim06TR schrieb:
hab ich gelesen
Wo denn?

Obere Grenze von
rand()sollteRAND_MAXentsprechen. Und das müsste grösser gleich 32767 sein.Tim06TR schrieb:
ok das hilft sehr danke
Ich würde mir www.cplusplus.com sowieso merken. Ich finde, diese Seite gibt einem eine sehr gute Übersicht über die Standardbibliothek. Wenn du etwas aus
stdnicht kennst, sollte das die erste Anlaufstelle sein.
-
Nexus schrieb:
Tim06TR schrieb:
hab ich gelesen
Wo denn?

Obere Grenze von
rand()sollteRAND_MAXentsprechen. Und das müsste grösser gleich 32767 sein.na, so ziemlich das was Tim06TR sagt.
-
volkard schrieb:
meine kristallkugel sagt mir, daß du
srand(time(0)); int x1=rand()%6+1; ... srand(time(0)); int x2=rand()%6+1;machst.
das ist falsch.richtig ist
int main() { srand(time(0));//nur einmal im prog, nämlich am anfang der main() ... ... int x1=rand()%6+1; ... int x2=rand()%6+1;Hallo volkard,
Danke für die Antwort. Leider lag deine Kristallkugel falsch.srand((unsigned) time(NULL)); Real timeFirstEnemy = rand() % 5; int Position = rand() % 5;Die Sache ist die, das die beiden zahlen auch gerne mal gleich sein dürfen nur bekomme ich bei dieser Funktion immer das gleiche Ergebnis.
Grüße
-
und was ist dein Real?
-
das ist vom Typ float. Könnte auch float da stehen.
-
Nexus schrieb:
Wenn man allerdings plötzlich 1000 unterschiedliche Zufallszahlen zwischen 1 und 10000 haben will, sollte man sich ein effizienteres Verfahren überlegen, da der Rechenaufwand von oben genanntem sehr schnell ansteigt. Ein Ansatz wäre, alle Zahlen in einem Container zu speichern, diesen mit
std::random_shuffle()durchmischen und die gewünschte Anzahl Zufallszahlen am Anfang oder Ende auszulesen.meinst du wirklich, ich bräuchte mit dem durchprobieren zehnmal so lang? glaub ich nicht. also ist random_shuffle doch langsamer.
-
Dreadis schrieb:
Hallo volkard,
Danke für die Antwort. Leider lag deine Kristallkugel falsch.war aber auch recht dicht dran.
wie ist es, wenn du srand((unsigned)time(NULL)) an den anfang der main() auslagerst?
-
volkard schrieb:
Nexus schrieb:
Wenn man allerdings plötzlich 1000 unterschiedliche Zufallszahlen zwischen 1 und 10000 haben will, sollte man sich ein effizienteres Verfahren überlegen, da der Rechenaufwand von oben genanntem sehr schnell ansteigt. Ein Ansatz wäre, alle Zahlen in einem Container zu speichern, diesen mit
std::random_shuffle()durchmischen und die gewünschte Anzahl Zufallszahlen am Anfang oder Ende auszulesen.meinst du wirklich, ich bräuchte mit dem durchprobieren zehnmal so lang? glaub ich nicht. also ist random_shuffle doch langsamer.
Kann man doch ausrechnen, wie groß die Wahrscheinlichkeit ist, dass man ne Zahl tirfft die man schon hat. Ist doch ne richtig interessante Aufgabe, die hier sicher einer ausrechnen will.