Rand Funktion

Gast #58242
Lesenswert?

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 #58246
Lesenswert?

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
Lesenswert?

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
Lesenswert?

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 schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren