Weiß jemand, wie man rand(char) dazu bringt, nur Zahlen zwischen 0-9 zu erzeugen ? Danke Kurti
aber klar! in der stdlib.h kann ein define geändert werden. #define RAND_MAX 0xff bei mir in zeile 57. flo
Vielen Dank ! Habe ich leider schon gewußt. Habe aber den CodeVision C Compiler, der echt super ist, bei dem es diese Konstante aber nicht gibt. Bei diesem lautet die Initialisierung: #include <stdlib.h> main() { unsigned char n; n=(unsigned char) ((9L* (unsigned long) rand())/32767L); } Grüße Josef
Hallo Wie wäre es mit einer modulo(oder so ...) Division? Bsp: y=rand()%10; Sollte Werte zwischen 0 und 9 zurück geben. Gruss Thomas Berger
Nur ein kurzer Hinweis: Wenn die Funktion normalerweise Werte von 0..255 liefert und du diese jetzt mod 10 dividierst, dann erhältst du keine absolute Gleichverteilung... Die Zahlen 0..5 kommen etwas häufiger vor (wegen 250..255 und nicht ..259).
Hallo Schmittchen Stimmt, habe ich mir noch nie überlegt. Fragt sich, ob diese Abweichung toleriert werden kann. Wie würdest du dieses Problem lösen, damit die Verteilung gleich bleibt? Gruss Thomas
Hm, eine Möglichkeit wäre z.B. durch Abfrage, ob die Random-Funktion den Wert 250-255 geliefert hat, und dann verwerfen und nicht mod10 dividieren. Gibt aber bestimmt noch andere Möglichkeiten.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.