<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Jetzt hab ich grad gemerkt dass der Zufallsgenerator einen Bug enthaelt, denn es sollte mod 65536, und nicht mod 65535 gerechnet werden! :-(<br><br>Korrekt waere also:<br><br>T($r,65536) $rnd+=$r $rnd*=25173 $rnd+=13849 $wuerfel:=$rnd $wuerfel%=6 $wuerfel+=1<br><br></div><div>Ueberigens koennte ein Befehl gespart werden indem man einfach "$wuerfel+=1" weglaesst. Der Wuerfel geht dann einfach von 0 bis 5, aber das geht vermutlich auch, oder nicht?<br><br></div><div>Juerg<br></div><div dir="ltr"><span style="font-family:"Courier New""></span></div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Sep 17, 2018 at 11:58 AM Jürg Wullschleger <<a href="mailto:wullschleger@gmail.com" target="_blank">wullschleger@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Hallo Marcel,<br><br></div>Das Problem ist das die vom T-Befehl gelieferte Zahl relative wenig Zufall enthaelt. Es ist einfach ein Counter der hochgezaehlt wird. Wenn man also nur diese Zahl verwendet, wird der Wuerfel vielleicht nicht schoen gleichverteilten sein. Oder man bekommt Abhaengigkeiten zwischen den Zahlen. Vielleicht ist das nicht so schlimm fuer dein Spiel, aber am besten versucht man das zu vermeiden.<br><br>Deshalb verwenden wir hier einen einfachen Pseudo-Zufallsgenerator, und die von T gelieferte Zahl wird nur als "Seed" verwendet, um die Folge nicht-deterministisch zu machen.<br>Die Zahlen 25173 und 13849 sind zwei Zahlen die sich fuer einen solchen Zufallsgenerator besonders gut eignen. Das ist keine Willkuer, die meisten andere Zahlenpaare werden viel schlechtere Zufallszahlen generieren. Details zu gibts hier (auf englisch):<br><a href="https://en.wikipedia.org/wiki/Linear_congruential_generator" target="_blank">https://en.wikipedia.org/wiki/Linear_congruential_generator</a><br><a href="http://users.encs.concordia.ca/home/g/grogono/RNG/grog-gen.html" target="_blank">http://users.encs.concordia.ca/home/g/grogono/RNG/grog-gen.html</a><br></div><div dir="ltr"><br></div><div>Gruss<br><br></div><div>Juerg<br></div><div dir="ltr"><br><br></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr">On Mon, Sep 17, 2018 at 7:59 AM Marcel Eilers <<a href="mailto:marcel.eilers@t-online.de" target="_blank">marcel.eilers@t-online.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="DE" link="blue" vlink="purple"><div class="m_-2738883506057728339m_-8798653177435397467m_-2807562624472082695m_-2156096837921390325WordSection1"><p class="MsoNormal">Guten Morgen,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">auf die Notwendigkeit meine Programmierung auf maximal 8 Befehle in einer Reihe zu kürzen, habe ich mir den „Pseudo-Zufallsgenerator“ nochmal angesehen. Irgendwie bin ich da nicht ganz dahinter gestiegen. Aber interessieren würde es mich trotzdem.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Also der Standard Generator lautet:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><span style="font-family:"Courier New"">- T($r,65535) $rnd+=$r $rnd*=25173 $rnd+=13849 $wuerfel:=$rnd $wuerfel%=6 $wuerfel+=1<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:"Courier New""><u></u> <u></u></span></p><p class="MsoNormal">Damit habe ich schon 7 Befehle verbraucht. Jetzt noch ein J und ein P Befehl und der Assembler macht Probleme.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Warum werden für diese Funktion 3 Register verwendet?? Man könnte dies auch so schreiben:<u></u><u></u></p><p class="MsoNormal"><span style="font-family:"Courier New""><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-family:"Courier New"">- T($wuerfel,65535) $wuerfel*=25173 $wuerfel+=13849 $wuerfel%=6 $wuerfel+=1<u></u><u></u></span></p><p class="MsoNormal"><span style="font-family:"Courier New""><u></u> <u></u></span></p><p class="MsoNormal">Dann hätte ich das um 2 Befehle reduziert…<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Welche Bedeutung haben die Zahlen 25173 und 13849???? Ist das willkürlich?<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Wäre schön, wenn mir jemand dieser Funktion einfach nur mal erläutern könnte. Dies einfach nur interessehalber…<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Vielen Dank für Eure Bemühungen.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Schöne Grüße<u></u><u></u></p><p class="MsoNormal">Marcel<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p></div></div>-- <br>
tiptoi mailing list<br>
<a href="mailto:tiptoi@lists.nomeata.de" target="_blank">tiptoi@lists.nomeata.de</a><br>
<a href="https://lists.nomeata.de/mailman/listinfo/tiptoi" rel="noreferrer" target="_blank">https://lists.nomeata.de/mailman/listinfo/tiptoi</a><br>
</blockquote></div>
</blockquote></div>