Notice that it is a software based generated number.
2
And each time you will restart your program the same sequence will be
3
created.
beachtet?
http://avrhelp.mcselec.com/index.html?rnd.htm> Aber irgendwie kommt z.b. die 4444 viel öfter als andere .also wird die #Zahl 5
viel öfter gewürfelt.....
So, so. Und auf wievielen 10-tausend Würfelungen in einer Session (damit
obiger Satz nicht wirksam wird) stützt sich dein Befund?
Zufälligkeit ist eine statistische Eigenschaft einer Folge von Zahlen.
UNd so wie bei allen Statistiken, benötigt man dazu eine ausreichend
lange Zahlenfolge. Bei 100 Würfen mit einem Würfel ist es nicht
ungewöhnlich, dass eine Augenzahl nur 9 mal vorkam, eine andere dagegen
22 mal. 100 ist eine zu kleine Zahl von Würfen, damit sich der
Erwarttungswert 16 ausbilden könnte. Man muss schon 10000 Würfe machen,
damit man dann in den einzelnen Augenzahlen die erwarteten
16-hundert+irgendwas sieht und du gewillt bist, das als 'im wesentlichen
kommen alle 6 Zahlen gleich oft vor' zu akzeptieren.
Da ich mir aber nicht vorstellen kann, dass du enstprechend viele
Versuche in einem Rutsch gemacht hast, auf der anderen Seite durch die
Nichtbeachtung des Startwertes nach einem erneuten Programmstart immer
die gleiche Folge von Zahlen kriegst, ist deine Aussage, der Generator
wäre fehlerhaft, nicht viel wert.
Pascal B. schrieb:>> Nur warum?
Gegenfrage: Wo soll der echte Zufall hier herkommen?
Abgesehen davon, mit deiner Methode kannst du die Qualität der
Zufallszahlen nicht beurteilen. Nur weil eine Zahl ein paar mal öfter
vorkommt.
Eine Pseudo-Zufallsgenerator muss man auch initalisieren. Mit einer
Zufallszahl wenn möglich. Was sagt die Doku dazu?
Thomas Glass schrieb:> RND war schon zu C64-Zeiten nicht wirklich zufällig...
Von wegen! Da nahm man den Rauschgenerator des SID. Sozusagen ein echter
Hardware Zufallszahlengenerator.
Karl Heinz schrieb:> Da ich mir aber nicht vorstellen kann, dass du enstprechend viele> Versuche in einem Rutsch gemacht hast, auf der anderen Seite durch die> Nichtbeachtung des Startwertes nach einem erneuten Programmstart immer> die gleiche Folge von Zahlen kriegst, ist deine Aussage, der Generator> wäre fehlerhaft, nicht viel wert.
Als Minimum könntest du zb hergehen und dir den ___RSEED so wie in der
Doku beschrieben als eigene Variable anlegen, deren Wert du im EEPROM
speichern kannst und die du beim Programmstart aus dem EEPROM wieder mit
dem zuletzt gespeicherten Wert besetzt. Dann ist zumindest erst mal der
Punkt vom Tisch, dass du jedesmal die gleiche Zahlenfolge kriegst, weil
du bei jedem Programmstart mit einem anderen Wert für __RSEED startest.
also ich habe ca. 100 versuche gehabt, und wenn jedes mal z.b. die 7
gewürfelt wird sagt mir es doch das da was nicht stimmt....
testet es doch selbst ....
den Satz in der Doku hab ich danach gelesen, aber es sollte doch so
zufällig sein das es bei 10 versuche jedes mal, oder zumindest fast
jedes mal ein anderes Ergebnis gibt oder?
meine Vorgehensweise ist :
Ich drücke den Taster und notiere mir das Ergebnis, das mach ich so
lange bis ein Ergebnis 10 mal da war.
und da kommt fast immer das gleiche raus.
Rauschrausch schrieb:> Thomas Glass schrieb:>> RND war schon zu C64-Zeiten nicht wirklich zufällig...>> Von wegen! Da nahm man den Rauschgenerator des SID. Sozusagen ein echter> Hardware Zufallszahlengenerator.
Hmmm....
hab da mal etliche hundert Pixel "zufällig" setzen lassen und muss sagen
Zufall sieht i-wie anders aus. Die genauen Umstände weiss ich nach ca 30
Jahren aber nicht mehr.
ach was mir gerade aufgefallen ist , wenn ich die Schaltung einschalte
und drücke kommt 2 mal Fail und dann die 1111. Das kommt immer... ist
das normal?
Hab ich evtl ein Fehler im Programm?
Als Minimum könntest du zb hergehen und dir den ___RSEED so wie in der
Doku beschrieben als eigene Variable anlegen, deren Wert du im EEPROM
speichern kannst (naqch einem RND) und die du beim Programmstart aus dem
EEPROM wieder mit dem zuletzt gespeicherten Wert besetzt. Dann ist
zumindest erst mal der Punkt vom Tisch, dass du jedesmal die gleiche
Zahlenfolge kriegst, weil du bei jedem Programmstart mit einem anderen
Wert für __RSEED startest.
ich bin neu bei der Sache und hab deshalb nicht das nötige wissen was in
den EEPROM zu speichern...
Könntet ihr mir da einen Progammbeispiel oder sowas zukommen lassen?
Mein Englisch ist miserabel deswegen hilft die Doku nur teilweise...
Pascal B. schrieb:> also ich habe ca. 100 versuche gehabt,
viel zu wenig um irgendetwas statistisch relevantes aussagen zu können.
> und da kommt fast immer das gleiche raus.
Dann fang erst mal an, dein Programm insofern korrekt zu machen, dass du
den Generator korrekt benutzt. Die Warnung steht nicht ohne Grund in der
Doku
Thomas Glass schrieb:>> Von wegen! Da nahm man den Rauschgenerator des SID. Sozusagen ein echter>> Hardware Zufallszahlengenerator.>> Hmmm....>> hab da mal etliche hundert Pixel "zufällig" setzen lassen und muss sagen> Zufall sieht i-wie anders aus. Die genauen Umstände weiss ich nach ca 30> Jahren aber nicht mehr.
Der Rauschgenerator im SID ist auch nur ein LFSR, allerdings schiebt er
von selbst regelmäßig weiter. Bei zufälligem Timing, z.B. wenn man auf
Benutzerinteraktion wartet, funktioniert das super, beim ausgeben von
Pixeln im gleichmäßigen Takt sieht man jedoch die periode.
Pascal B. schrieb:> ich bin neu bei der Sache und hab deshalb nicht das nötige wissen was in> den EEPROM zu speichern...
dann ... lerne es.
> Könntet ihr mir da einen Progammbeispiel oder sowas zukommen lassen?
Google ist dein Freund und BASCOM Tutorien gibt es auch frei verfügbar.
Gerade in BASCOM ist das wirklich nicht schwer.
> Mein Englisch ist miserabel deswegen hilft die Doku nur teilweise...
macht nix. Das Englisch von älteren Japanern ist noch miserabler und die
schaffen das auch. Technisches Englisch ist ja schliesslich keine
Romansprache mit gefinkelten Satzkonstrukten.
Oder man zählt mit irgendeinem Timer mit hoher frequenz wie lange ein
Tastendruck dauert, daß ist dann jedesmal anders (z.B. beim AVR nen 8
Bit Timer mit 16MHz Zählen lassen). Der ist garantiert ziemlich
zufällig.
Wenn du das wirklich überprüfen willst, lass dir sehr sehr viele Zahlen
ausgeben zb über UART und mach ein Diagramm. Je mehr Zahlen
(nacheinander nicht willkürlich ausgewählte) du untersuchst desto näher
kommst du der Wahrheit.
Und - informier dich über Statistik und Wahrscheinlichkeit
Als Seed kannst du das Rauschen eines Eingangs verwenden.
Karl Heinz schrieb:> macht nix. Das Englisch von älteren Japanern ist noch miserabler und die> schaffen das auch. Technisches Englisch ist ja schliesslich keine> Romansprache mit gefinkelten Satzkonstrukten.
Ich sag das nicht, weil ich dich ärgern will. Aber es ist nun mal so,
dass die Fachsprache in der Programmierung Englisch ist. Ohne wenigstens
ein bischen Englisch kommst du nicht weit. Also leg deine Scheu ab, leg
dir einen Link zu einem Online-Übersetzer in deinen Browser und fang
genau JETZT damit an, die Doku im Original zu lesen, zu übersetzen und
zu verstehen. Das ist am Anfang etwas gewöhnungsbedürftig, aber es
kommen immer wieder die gleichen Worte und die gleichen Phrasen vor, so
dass das alles nach kurzer Zeit recht flott von der Hand geht. Du musst
ja nur Lesen und nicht Schreiben.
Pascal B. schrieb:> Do> If Pinb.1 = 1 Then> Zufall = Rnd(10)
Hallo!
Das Einfachste ist, nicht nur einmal den RND() Wert zu ermitteln wie
hier oben, sondern in einer Schleife mehrmals, solange der Knopf
gedrückt ist. Erst wenn der Taster losgelassen wird, mit dem letzten
Wert weitermachen. Niemand drückt immer gleich lang den Knopf.
Nur mal als Beispiel.
Das hier ist die Statistik in einem einfachen Programm, welches
6-seitige Würfel simuliert. Angegeben ist die Anzahl der Augenzahlen bei
x Versuchen.
Man sieht:
bei 100 Würfen streut die Anzahl der jeweils gewürfelten Augenzahlen (in
diesem Beispiel) von 10 bis 18 mal.
Bei 1000 ist immer noch kein annähernder Gleichstand zu verzeichnen. Die
1 kam 155 mal vor, die 3 182 mal.
Erst bei 10000 wird die prozentuelle Differenz zwischen den Wurfzahlen
geringer und erst bei den Zahlen von 100000 Würfen würde man als
Unbedarfter das Attribut 'fair' benutzen.
Ich traute mir keine Schätzung zu. Aber mit mehr als 1000 lag ich dann
ja doch nicht so schlecht. Tja die Geheimnisse der Statistik. Nun soll
das der TO mal probieren.