-         

Ergebnis 1 bis 10 von 10

Thema: Bessere Zufallszahlen in Bascom

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594

    Bessere Zufallszahlen in Bascom

    Anzeige

    Ich stehe vor dem Problem, dass ich einen Ablauf recht zufällig laufen haben möchte und an verschiedenen Stellen im Programm RND() nutze.

    Dooferweise scheint es so, als ob Bacom stets gerade, ungerade, gerade, ungerade usw. würfelt.
    Falls man nur aus zwei Optionen wählt kommt man so u.U. erst immer nur mit Option 1 raus.

    Hat jemand noch Tricks/Tipps?
    ___rseed bringts nicht.

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Für den Startwert des Zufallgeneratorsgenerators muß man man auf eine Echte Zufallszahl zurückgreifen. Das kann z.B. der AD-wandler oder ggf. ein Wert aus ICP Register von Timer 1 sein.

    Wenn die interne RND() Funktion von Bascom nicht gut genug ist, könnte man eine Pseudozufallszahlenfunktion auch von Hand Programmieren. Beispiele solle man finden, wenn auch meistens in C.

  3. #3
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.969
    Hallo!

    @ stefan_Z

    Als bisher bester hardware Zufallszahlgenerator hat sich bei mir in der Praxis eine unentprellte Taste bewiesen.

    MfG

  4. #4
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    @picture
    Wenn man einen Taster hat, dann geht am besten den Timer1 auf voller Geschwindigkeit laufen lassen, und dann die ICP Funktion über den Taster zu nutzen. Die Zeit, wann der Taster zuletzt Signal gegeben hat ist halt recht zufällig.

    Beim Prellen hat man oft nur einige wenige Pulse, selten mehr als 10.

  5. #5
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.969
    @ Besserwessi

    Du hast völlig recht mit der Impulszahl und wenn man grössere Zahlen braucht, könnte man jedes "Prellen" als Ziffer gewünschter Zahl nehmen.

    Ich habe es schon vor zig Jahren verwenndet, wo noch keine µCs mit Timers gegeben hat. Mann könnte auch anstatt einer Taste von µC gesteuertes Kontakt von z.B. Reedrelais verwenden.

    MfG

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    26.05.2007
    Beiträge
    594
    hmm das soll ja alles recht häufig und auch nicht sooo zufälig sein - ein Isotop werde ich mir nicht zulegen
    Die besseren Algos sehen aber schon echt komplex aus muss man sagen, werde mir das letzte bit vom ADC mal ansehen...

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    30.12.2008
    Beiträge
    1.418
    oder den ad compare eingang nehmen bissel kabel das fängt auch rauschen ein und den zweiten eingang mit dreh poti in die rausch stellung drehen

  8. #8
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Die standard methode für echten Zufall ist das Rauschen einer Zenerdiode oder eines Transistors Verkehrt herum. Einfach nur ein Draht, fängt wahrscheinlich 50 Hz ein, und ist damit nicht zuverlässig. So eine echte Zufallgröße verwendet man selten allein, sondern , meistens in kombination mit einer Pseusozufallszahl. Das rauchen sorgt für echten Zufall, und die Pseudozufallszahl sorgt dafür das so etwas wie Gleichverteilung usw. gut hinbekommt.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    26.12.2009
    Beiträge
    6
    Der RND-Algorithmus in Bascom wurde kürzlich verbessert - updaten auf 9.8.

  10. #10
    Erfahrener Benutzer Lebende Robotik Legende Avatar von PICture
    Registriert seit
    10.10.2005
    Ort
    Freyung bei Passau in Bayern
    Alter
    66
    Beiträge
    10.969
    Hallo!

    So wie der Besserwessi schon geschrieben hat, rein Softwaremässiger Zufallsgenerator ist nicht möglich, weil ein Prozessor selber nicht zufällig arbeitet, wenn sein Programm logisch aufgebaut ist. Deswegen alle rein softwaremässige Algorithmen können nur Pseudozufallszahlen erzeugen und für echte Zufallszahlen ist ein Signal von "aussen" notwendig.

    Den Vorschlag vom Besserwessi, ein ADC an weissem Rauschen, finde ich optimal.

    MfG

Berechtigungen

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