Frage zu Zufallszahlen (C++)

syskey

Redshirt
Mitglied seit
12.08.2005
Beiträge
3
Renomée
0
Hab grad mit programmieren angefangen, und nen problem-

eine funktion erzeugt eine zufallszahl, und gibt sie über return aus, damit sie eine weitere funktion in einer schleife verwenden kann. Nu brauch ich aber Zwei solcher zufallszahlen in der elben schleife, und dummerwiese sind die momentan in in den einzeilnen umläufen gleich, das sie nicht seien sollten.

gibst eine einfache Lösung für mein problem?

(ohne, das ich eine neue funktion für die zweite zufallszahl schreibe?)
 
Postest du bitte mal die betroffenen Stellen deines Quellcodes? Evtl. finden wir dann das Problem ;).
 
C++ hat in der Standardlib schon einen Pseudozufahlszahlen-Generator, den du für sowas benutzen kannst.
 
PuckPoltergeist schrieb:
aus diesem Posting

C++ hat in der Standardlib schon einen Pseudozufahlszahlen-Generator, den du für sowas benutzen kannst.

Jaub. Das gute Stück heisst rand().

Du solltest (um den Zufall beim Generieren der Zufallszahlen zu erhöhen)
Zwischendruch srand ( time(NULL) ) aufrufen.

mit srand setzt du quasi den Ausgangswert zum gerieren der Zufallszahl neu. Daher auch als Eingangsparameter "time()" da du dadruch immer einen anderen Ausgangswert erzeugst..
 
oder du inistialiesiert den zufalls generator mit randomize(); und dann kannste auch rand() immer unterschiedliche Zufallzahlen erzeugen.
 
rand() hab ich verwendet.
hier ein stück quelltext:

double kleineKugel::zufallszahl()
{
double zufall;
double zufall2,

srand(time(NULL));

w = 10;
while (w>7)
{
zufall = rand() % 15;
zufall2 = rand() % 3 + 1;

w = zufall/zufall2;
}
return w;
}​

und eine andere Funktoion verwendet zufallszahl() zwei mal:

void kleineKugel::ersteKugel(double X, double Y, double Z, double R)
{
w = zufallszahl();
t = zufallszahl();


nun sind w und t gleich, was, wie schon gesagt, nich so sein soll.
 
Nimm das srand da raus und schreib es in den Konstruktor, das reicht schon.
 
Zurück
Oben Unten