Der Nachfolger des WDR-Computerclub mit Wolfgang Back und Wolfgang Rudolph - ...und immer ein Bit übrigbehalten!


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Eingrenzung des Wertebereichs von Zufallszahlen Kategorie: Open-Micro/Open-Mini/Open-Midi/Open-Macro/Open-Maxi (von Dietmar, Homepage - 21.02.2021 20:21)
Dietmar nutzt:  Open-Micro, Open-Mini, Open-Midi, Open-Macro, Open-Maxi, Open-Mini Station
Hallo zusammen,

in diesem Beitrag habe ich beschrieben, wie mit den beiden OM-Mikrocontrollern Open-Macro und Open-Maxi Zufallszahlen in einem bestimmten Wertebereich erzeugt werden können.

"((RAND SHR 1)+16384)" erzeugt bekanntlich Zufallszahlen zwischen 0 und 32767.

Gesucht ist nun die passendste ganze Zahl x, die bei der Berechnungsvorschrift "((RAND SHR 1)+16384) / x" Zufallszahlen zwischen 0 und der größten gewünschten Zufallszahl produziert.

Da Nachkommastellen vom Controller bei der Berechnung abgeschnitten werden, muß eins addiert werden und folgende Ungleichung erfüllt sein:

"32767 / x < (größte_gewünschte_Zufallszahl + 1)"

Umstellung:

"x > 32767 / (größte_gewünschte_Zufallszahl + 1)"

Beispiel:

Es sollen Zufallszahlen zwischen 0 und 15 generiert werden.

Einsetzen:

"x > 32767 / 16.0"

Der Taschenrechner liefert:

"x > 2047.9375"

Die Zahl x muß also größer 2047.9375 sein. Die nächsthöhere ganze Zahl ist 2048.

Probe:

"32767 / 2048.0 = 15.99951172"

Es paßt also.

Übrigens ergibt sich durch Wahl der passendsten Zahl x der geringste Fehler, bzw. die größte Genauigkeit, wie der relative Fehler in Prozent zeigt:

"(16 - 32767 / 2048.0) / 16 * 100% = 0.003051757812%"

Viel Spaß und Erfolg mit den OM-Mikrocontrollern!

Dietmar

Passender Link: Offizielle Infosite zu den OM-Mikrocontrollern

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten: