www.mikrocontroller.net

Forum: FPGA, VHDL & Co. lottozahlen in vhdl generieren


Autor: Ronny S. (aquarius79)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

Ich möchte gerne für eine Belegarbeit einen "Lottozahlengenerator" mit 
dem Spartan-II XC2S150 und Xilinx realisieren.
Die Idee ist es mittels Zähler 4 Zahlen auf vier 7-Segmentanzeigen im 
Bereich von 1 bis 20 in Enlosschleife laufen zu lassen. Sobald ein 
entsprechender Taster betätigt wird, soll die erste Zahl auf der 1. 
Anzeige angezeigt werden. Bei Betätigung von 3 weiteren Tasters, sollen 
auch die übrigen Zahlen generiert werden.
Problem ist nur, dass ich keinen Schimmer habe (blutiger 
VHDL-Anfänger!), wie ich das in VHDL umsetzen soll.
Die nächste Hürde ist dann noch, dass keine Zahl doppelt vorkommen darf. 
Für jede Hilfe bin ich sehr dankbar.

VG Ronny

Autor: Lolly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Willst Du die Lottozahlen vom Mi oder Sa generieren?

Sorry, konnte es mir nicht verkneifen ;-)

Lolly

Autor: Marcus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist Du es DB1...

Ach ja der Spruch war wirklich gut und mein PC geht wieder, war wirklich 
nur die Grafikkarte. Auf die nächsten 10 Jahre.

Gruß
Marcus

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist also ein Lotto 4 aus 20?
Warum reicht nicht ein Taster aus, um nacheinander alle Zahlen 
nacheinander zu generieren?
Vorschlag: Tastendruck 1 bis 4 generiert die Zahlen. Tastendruck 5 
löscht die Anzeige wieder (und die gezogenen Zahlen). Dann gehts wieder 
von vorne los.
Das Problem mit den doppelten Zahlen kannst du einfach so lösen, dass du 
einfach die nächste Zahl aus deinem Zähler nimmst, wenn eine Zahl 
doppelt gezogen wird (und wenn die gezogen wurde nimmst du wieder die 
nächste).
Für den Taster benötigst du eine gute Tastenentprellung.

Der Besucher

Autor: S. K. (nullgeist)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Der Besucher:
Das geht nicht, da dann keine gleichverteilung mehr gewährleistet ist, 
was bei der Aufgabenstellung recht wichtig ist...

Autor: Niklas Gürtler (erlkoenig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oder du überspringst einfach beim Zählen die schon gezogenen Zahlen 
(indem du die gerade angezeigte Zahl mit den vorherigen bei jedem 
Schritt vergleichst), so kann keine Zahl doppelt vorkommen. Aber wenn 
ein Mensch die Zahlen auf dem LCD sieht und dann dementsprechend drückt, 
ist das doch nicht wirklich zufällig? Wäre dafür nicht sowas wie ein 
analoger Zufallszahlengenerator (Rauschgenerator) sinnvoller?

Autor: pedro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn man für jede zahl einen taster hat: shuffle während taste gedrückt 
(zähler mit systemclock hinaufzählen lassen), anzeigen wenn taste 
losgelassen wird. da der fpga eine sehr hohe frequenz besitzt, bekommt 
man eine super random-zahl.

damit zahlen nicht doppelt vorkommen: vergleichen mit schon gewürfelten 
zahlen (if, else).

nicht vergessen: zähler begrenzen und wieder auf 1 (oder 0?) 
zurücksetzen wenn grösser 20.

ps: gute tasterentprellung benötigt!

Autor: Der Besucher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@nullgeist: als ob das jemand merkt...
Ok, um eine wirkliche Lottosimulation hinzubekommen, muss man die 
Zählweite nach jeder gezogenen Zahl decrementieren und dann die 
gezogenen Zahlen ummappen. Denn nach jeder gezogenen Zahl reduziert sich 
der Pool der nicht gezogenen Zahlen. Vielleicht kann das jemand 
berechnen, ob das einen Unterschied in der Ziehungswahrscheinlichkeit 
ausmacht zu einem einfachen neuen Ziehungsversuch, wenn die Zahl schon 
gezogen wurde.

Der Besucher

Autor: Hagen Re (hagen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja tut es, "Ziehung mit zurück legen" hat andere bedingte 
Wahrscheinlichkeiten als "Ziehung ohne zurück legen". Ein ständig 
gemachter Fehler bei vielen Lottogeneratoren.

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum sollte das einen Unterschied machen, wenn man schon einmal 
gezogene Zahlen wegwirft und noch einmal zieht?

Autor: max (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
da macht es keinen unterschied. es fängt an einen unterschied zu machen, 
wenn du einfach nur einen zähler hast und wenn du ne zahl ziehst die 
schon dran ist, die nächste nimmst! (die wahrscheinlichkeit, dass so 
eine zahl nach einer gezogenen drankommt ist doppelt so hoch wie für die 
anderen)

du könntest auch ein PRBS generator implementieren, der 4 mal so groß 
ist wie die wortbreite die du erwartest und die zahl quasi "auf ein mal" 
generieren.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [vhdl]VHDL-Code[/vhdl]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.