Zufallszahl erzeugen mit ROBO Pro

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Jubel
Beiträge: 1
Registriert: 07 Jan 2011, 21:36

Zufallszahl erzeugen mit ROBO Pro

Beitrag von Jubel » 15 Jul 2012, 11:23

Hallo,
gibt es eine Möglichkeit mit ROBO Pro Zufallszahlen zu erzeugen?
Wenn ja, wie :?:

Hintergrund: Mein Sohn hat mit dem C64-Interface ein Pferderennen gebaut, bei dem per Zufallsfunktion (Basic-Funktion RND) gesteuert wird, welches Pferd sich wie weit nach vorne bewegt. Wir wollen dieses Modell jetzt auch mit dem ROBO TX Controller steuern.

Gruß, Christian

UMueller
Beiträge: 220
Registriert: 31 Okt 2010, 22:58

Re: Zufallszahl erzeugen mit ROBO Pro

Beitrag von UMueller » 15 Jul 2012, 12:37

Hallo,

man kann natürlich auch schlicht den Random.rpp aus dem Verzeichnis RoboPro\Bibliothek\Advanced nehmen

Gruß Ulrich Müller

Benutzeravatar
FeuerTischler
Beiträge: 13
Registriert: 18 Okt 2011, 04:02

Re: Zufallszahl erzeugen mit ROBO Pro

Beitrag von FeuerTischler » 16 Okt 2013, 17:56

UMueller hat geschrieben:Hallo,

man kann natürlich auch schlicht den Random.rpp aus dem Verzeichnis RoboPro\Bibliothek\Advanced nehmen

Gruß Ulrich Müller
Hallo,

Could you explain how to use the Random sub-program in the ft-Library ?

It keeps generating the same numbers everytime i run the program.

How do you make it different ?

Thanks.
give them NOT fish, but TEACH them HOW TO

Benutzeravatar
Dirk Fox
ft:pedia-Herausgeber
Beiträge: 1845
Registriert: 01 Nov 2010, 00:49
Wohnort: Karlsruhe
Kontaktdaten:

Re: Zufallszahl erzeugen mit ROBO Pro

Beitrag von Dirk Fox » 19 Okt 2013, 12:24

Hallo miteinander,

Zufallszahlen und Computer sind grundsätzlich eine Herausforderung - ein Computer arbeitet immer deterministisch (also vorhersagbar), und Zufall ist das genaue Gegenteil davon.

Zufallszahlengeneratoren in Programmen erzeugen daher normalerweise immer "Pseudozufallszahlen": Sie errechnen aus einem "Seed" (einer Quelle) "verwurstete" Werte, die idealerweise gleichverteilt aus einem gegebenen Intervall stammen. Da das "Verwursten" immer durch einen Algorithmus erfolgt, hängt die Zufälligkeit der Pesudozufallszahl vor allem an dem "Seed". Viele Computer verweden dafür einen Teil der Uhrzeit (Sekundenbruchteile) oder einen anderen, halbwegs schwer vorhersagbaren Input-Wert. Für bestimmte Anwendungen (Verschlüsselungstechnik) ist das immer noch zu schlecht, daher arbeitet man da meist mit analogen Eingabegeräten (z.B. der Mausbewegung des Benutzers) oder mit Hardware, die quasi zufällige Werte "ausspuckt" (z.B. Rauschen), und verwendet diese Daten als "Seed". Dass man anschließend die Zufallswerte mit einem Algorithmus daraus ableitet, liegt in der Regel an der Langsamkeit der "echten" Zufallsquelle (man will ja auch nicht immer mit der Maus herumwackeln).

Beim TX ist das Problem, dass er keine Uhr oder ein festes Eingabe-Device besitzt, aus dem man ein zufälliges "Seed" ableiten könnte. Daher liefert das "Random"-Unterprogramm auch beim Starten immer denselben Wert. Ein Zufallsgenerator sollte besser irgendeinen (möglichst analogen) Sensor (z.B. einen der alten Fotowiderstände) beim Start auslesen - dabei möglichst nur das niederstwertige Bit verwenden. Hat man so Bit für Bit bspw. einen 16-bit-Wert gewonnen, kann man daraus dann mit einem geeigneten Algorithmus eine gleichverteilte Zufallsfolge erzeugen. Oft werden dafür Linear Rückgekoppelte Schieberegister, LFSR (https://de.wikipedia.org/wiki/LFSR) verwendet - sie sind schnell in Hardware und auch in Software leicht zu programmieren. Die Gleichverteilung kann man mit statistischen Tests prüfen. Wenn ihr keine hohen Anforderungen an die Verteilung und die Geschwindigkeit stellt, dann genügt es auch, den Startwert bspw. zu quadrieren und dann den Rest nach Division durch eine Primzahl als Ausgabe zu verwenden.

Beste Grüße,
Dirk
Zuletzt geändert von Dirk Fox am 19 Okt 2013, 15:20, insgesamt 1-mal geändert.

Antworten