Gast
#58240
Weiß jemand, wie man rand(char) dazu bringt, nur Zahlen zwischen 0-9 zu erzeugen ? Danke Kurti
|
Anzeige
|
Rand Funktion
Gast
#58240
Weiß jemand, wie man rand(char) dazu bringt, nur Zahlen zwischen 0-9 zu erzeugen ? Danke Kurti
Gast
#58241
aber klar! in der stdlib.h kann ein define geändert werden. #define RAND_MAX 0xff bei mir in zeile 57. flo
Gast
#58242
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
Gast
#58243
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
Gast
#58244
Werde es versuchen ! Danke Josef
Gast
#58245
An Thomas: Es klappt. Danke für den Tip ! Josef
Gast
#58246
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).
Gast
#58247
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
Gast
#58248
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. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|