zufallsgenerator
-
Wieso bist du daraus nicht schlau geworden?! Dort steht doch exakt drin, wie du das im Intervall [0..n] machen musst!
-
int CIniclass::getzufallszahl(const int &beginn,const int &ende) { srand(time(NULL)); return beginn + ( rand() % (ende - beginn + 1)); }
-
warum int per referenz? ich dachte du hast ahnung...
-
Unix-Tom: Der srand-Aufruf da drin ist extrem suboptimal.
-
Hallo,
wie schauts dann so aus?
int getzufallszahl(const int beginn,const int ende) { static int i = 0; if(!i) { srand( time(NULL) ) ; i=1; } return beginn + ( rand() % (ende - beginn + 1)); }
grüße Con@n
EDIT: hab die Referenzen weggenommen ist ja hier im Ansi-C
[ Dieser Beitrag wurde am 04.06.2003 um 13:11 Uhr von Con@n editiert. ]
-
dann kannst du auch das const wegnehmen. ist nämlich sinnlos
-
Original erstellt von <und...>:
dann kannst du auch das const wegnehmen. ist nämlich sinnlosMitnichten!
-
Original erstellt von RTC:
Mitnichten!welchen Sinn hat es denn??
-
Original erstellt von <c>:
warum int per referenz? ich dachte du hast ahnung...Damit so Typen wie du labbern können.
Wie du siehst kommt diese Funktion aus C++ den ANSI-C kennt keine Klassen.
Ich poste auch nicht Source für COPY/PASTE. Der es braucht muss selbst darüber nachdenken wie er es anwenden kann.[ Dieser Beitrag wurde am 05.06.2003 um 11:42 Uhr von Unix-Tom editiert. ]
-
-
Original erstellt von Con@n:
**```cpp
...
{
static int i = 0;
if(!i) {
... ;
i=1;
}
...kann mal jemand erklären für was diese seltsame konstruktion gut ist?
[ Dieser Beitrag wurde am 05.06.2003 um 22:47 Uhr von Dill editiert. ]
-
Damit der init-code (mitm srand()) nur einmal aufgerufen wird.
static heißt dort, dass der Wert der Variablen üebr die Funktion hinaus erhalten bleibt, sprich wird initialisiert mit 0 und dann setzt die Funktion nachm init auf 1, so dass jeder darauffolgende funktionsaufruf bescheid weiß,d ass schon initialisiert wurde.