Das Open-Control-Projekt - Die Alternative zur C-Control-I


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 

 Re: Zufallsgenerator Kategorie: Programmierung Basic (von Dietmar, Homepage - 3.11.2005 16:44)
 Als Antwort auf Re: Zufallsgenerator von Eckhard - 3.11.2005 11:35
Dietmar nutzt:  CC1-M-Unit V1.1, Advanced CC1-Unit, Open-Micro, Open-Mini

Hallo ihr vier

> Also Randomize timer oder auch define x ivar[163] brigt nichts. Du erhÀlst immer nach betÀtigen des Resetknopfes den gleichen Wert.

nach einem Reset lÀuft der Timer im Kontroller von Null los. Ein RANDOMIZE TIMER am Programmbeginn ist also nichts anderes als ein RANDOMIZE 0. Deshalb werden nach jedem Reset die gleichen Zufallszahlen generiert. Solange SynchronitÀt zwischen Systemzeit und Zufallszahl besteht wird sich daran auch nichts Àndern.

Davon abgesehen ist der Algorithmus zur Generierung der Zufallszahlen ("Methode der linearen Kongruenz") auf der Open-Micro zwar besser als auf der C-Control, aber systembedingt wird immer wieder die gleiche aus 256 Elementen bestehende Folge von Pseudo-Zufallszahlen generiert. RANDOMIZE verschiebt nur den Beginn der Folge. Durch eine eigene Erweiterung auf 16 Bit könnte man das Problem etwas entschĂ€rfen, aber echte Zufallszahlen zu generieren ist gar nicht so einfach. Man könnte zum Beispiel eine Variable schnell hochzĂ€hlen, bis der Anwender eine Taste loslĂ€ĂŸt.

Welche Eigenschaften die durch "Methode der linearen Kongruenz" erzeugten Pseudo-Zufallzahlen genau besitzen kann ich nicht sagen, aber "RAND MOD 4" ist offensichtlich nicht geeignet, Zufallzahlen zwischen 0 und 3 zu generieren. Gute Ergebnisse werden aber offensichtlich mit "RAND/64" erzeugt. (Ansonsten mal in Fachliteratur wie beispielsweise Donald Knuth, The Art of Computer Programming, Vol. 2, USA 1981 (Addison-Wesley) nachsehen. Es gibt ganze Abhandlungen zu Zufallszahlen.)

Ich dachte eigentlich, schon etwas zu dieser Problematik in die Anleitung zur OM geschrieben zu haben, aber das ist offensichtlich nicht der Fall. Werde ich also in der nÀchsten 1.3er Version der Doku nachholen.

Gruß
Dietmar

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

 Antwort schreiben

Bisherige Antworten: