-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Zufallszahl 1-4

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.08.2004
    Beiträge
    169

    Zufallszahl 1-4

    Anzeige

    Hallo,
    Ich habe erst vor kurzem mit AVR angefangen und gestern erst mit Bascom (bin also ein blutiger Anfänger )
    Mein größter Vorteil ist da noch dass ich jedoch Visual Basic kann.

    Jetzt zu meinem Problem:
    Ich möchte eine Zufallszahl 1 bis 4 erzeugen. Dass das nicht einfach mit RND getan ist, ist mir klar. Auf meinem PC konnt ich einfach die Uhrzeit für eine Berechnung benutzen, aber da es keine Benutzereingaben gibt und auch nichts gemessen wird, bekomme ich einfach keine zufälligen Zahlen!

    Kennt jemand einen "guten" Algorithmus oder eine andere Möglichkeit mein Problem zu lösen?

    Danke schonmal

    Gruß Florian

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Wird die Zahl nur einmal pro Programmstart gebraucht oder zu verschiedenen Laufzeiten im Programm?
    Wenn zweiteres kannst du ja einen Timer Programmieren und da immer einen Zähler um 1 erhöhen. Dann hast du auch zu unterschiedlichen Zeiten eine ähnliche Zahl wie die Uhrzeit.

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.08.2004
    Beiträge
    169
    Also es geht darum dass 4 LED's leuchten, aber immernur eine, und welche leuchtet soll zufällig entschieden werden. Das ist das einzige was das Prgramm machen soll, somit leuchten die LED's leider immer in der selben Reihenfolge.

    Gruß Florian

    PS Ich benutze eine AT90S4433 (fals das irgendwie einen Unterschied machen sollte)

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Wenn sollen sie denn zufällig leuchten? Wen jemand eine Taste drückt oder alle drei Sekunden?

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    19.12.2004
    Beiträge
    486
    gibts in Bascom auch den vb-befehl randomize?
    Alle sagten: "Das geht nicht!" Dann kam einer, der wusste das nicht und hat´s gemacht

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Es gibt den Befehl RND() zur Erzeugung einer 'Zufallszahl'. In der BASCOM-Hilfe ist unter Index->RND einiges darüber beschrieben.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    06.11.2004
    Beiträge
    1.693
    Und da steht auch das es immer die gleichen Zufallszahlen sind. Und genau das ist ha nicht erwünscht und hat Goldenflash ja auch schon erkannt.

  8. #8
    Gast
    Es handelt sich bei "normalen" CPUs immer um deterministische Systeme, die somit bei identischen Start- und Laufzeitbedingungen immer alles gleich machen (deterministisch <-> vorhersagbar).

    Echte Zufallszahlen gibt es in diesem Zusammenhang nicht. Es handelt sich immer um durch einen festen Algorithmus erzeugte Zahlen. Dabei wird eine Folge verwendet, deren nächster Wert von der aktuellen Position abhängt. Wenn die Werte dieser Folge im Mittel gleichmäßig verteilt sind, dann hat man einen "guten" Pseudozufallszahlengenerator.

    In der Praxis werden verschiedene Folgen verwendet, alle arbeiten nach dem selben Prinzip. Der Startwert "seed" gibt die Startposition innerhalb der Folge vor. Dieser wird zusätzlich durch "randomize" in manchen Systemen auf einen Startwert gesetzt, der von einem seit Systemstart mitlaufenden Timer abhängt. Wenn die Zufallszahlen nicht sofort ab Reset, sondern nach einer undefinierten Pause (Der Benutzer drückt irgendwann mal eine Taste) benötigt werden, erreicht man dadurch immerhin eine zufällige Initialisierung. Die dann erzeugten Werte sehen zumindest zufällig aus, da sie jeweils aus einem anderen Bereich der Folge stammen.

    Wenn die Zufallszahlen direkt ab Reset ohne undefinierte Pausen benötigt werden, wird alles wieder determinitisch ablaufen und man erhält immer die selben Zahlen.

    Wirkliche Zufallszahlen erhält man nur, indem ein echt zufälliges Element wie z. B. ein Rauschgenerator verwendet wird. So kann man einfach die Impulse eines Rauschgenerators (Z-Diode plus Verstärker) in einem festen Zeitfenster zählen. Das gibt einen nicht vorhersagbaren Wert. Den verwendet man entweder direkt als Zufallszahl oder nutzt ihn, um den Startwert für den Pseudozufallszahlengenerator festzulegen.

    Für den Hobbybereich ist hier die Art des Rauschen völlig egal. Zum Thema Rauschgenerator gibt es hier was zu lesen:
    http://www.umnicom.de/Elektronik/Sch...generator.html
    http://www.qsl.net/dk3wi/HF_Noise_Generator.html

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    07.09.2004
    Ort
    Karlsruhe
    Alter
    48
    Beiträge
    77
    Und ich dachte, ich hätte mich eingeloggt ...

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    17.08.2004
    Beiträge
    169
    Zitat Zitat von Marco78
    Wenn sollen sie denn zufällig leuchten? Wen jemand eine Taste drückt oder alle drei Sekunden?
    Alle 3 Sekunden. Wenn jemand eine Taste drücken müsste wäre es ja kein solches Problem

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •