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: