<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Nein, bitte nicht, dadurch bekommst du einen ziemlich schlechten Wuerfel, besonders falls du schnell hintereinander wuerfelst.<br><br></div><div>Falls du das +1 nicht weglassen kannst, kannst du doch auch einfach die linie in zwei<br></div><div>zeilen teilen, z.b. (ich hoffe das stimmt, ich hab schon lange nichts mehr in dieser sprache geschrieben):<br></div><div><br></div><div># Wuerfeln, 1. Teil: Zufallszahl von 1-6 in $wuerfel erzeugen.<br>12345:<br></div><div>- T($r,65536) $rnd+=$r $rnd*=25173 $rnd+=13849 $wuerfel:=$rnd $wuerfel%=6 $wuerfel+=1 J(12346)<br><br></div><div># Wuerfeln, 2. Teil: Wuerfelgeraeusch ausgeben, nach ... springen.<br></div><div>12346:<br>- P(...) J(...)<br><br></div><div>Juerg<br><br></div><div>PS: Noch ein Kommentar fuer alle, die bis jetzt T($r,65535) anstatt T($r,65536) verwendet haben: keine Sorge, der Unterschied ist so winkzig dass man ihn nie bemerken wird. Ihr braucht also nun nicht alle Spiele umzuschreiben wegen dem.<br><br></div><div><div class="gmail_quote"><div dir="ltr">On Mon, Sep 17, 2018 at 2:06 PM Marcel Eilers <<a href="mailto:marcel.eilers@t-online.de">marcel.eilers@t-online.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="white" lang="DE"><div class="gmail-m_-2308379920672102132WordSection1"><p class="MsoNormal"><span style="color:rgb(31,73,125)">Hallo Jürg und Christoph,<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)">vielen Dank für Eure Erklärungen. Damit bin ich nun wieder etwas schlauer.<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)">Ich werde dann zukünftig folgende Generator verwenden:<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)">- T($r,65536) $wuerfel+=$r $wuerfel*=25173 $wuerfel+=13849 $wuerfel%=6 $wuerfel+=1<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)">Somit spare ich wenigstens noch einen Befehl und komme dann mit J() und P() auf 8 Befehle. Das reicht für meine Programmierung.<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)"><u></u> <u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)">Vielen Dank Euch.<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)">Gruß<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)">Marcel<u></u><u></u></span></p><p class="MsoNormal"><span style="color:rgb(31,73,125)"><u></u> <u></u></span></p><p class="MsoNormal"><a name="m_-2308379920672102132__MailEndCompose"><span style="color:rgb(31,73,125)"><u></u> <u></u></span></a></p><div><div style="border-width:1pt medium medium;border-style:solid none none;border-color:rgb(181,196,223) currentcolor currentcolor;padding:3pt 0cm 0cm"><p class="MsoNormal"><b><span style="font-size:10pt;font-family:"Tahoma","sans-serif";color:windowtext">Von:</span></b><span style="font-size:10pt;font-family:"Tahoma","sans-serif";color:windowtext"> tiptoi [mailto:<a href="mailto:tiptoi-bounces@lists.nomeata.de" target="_blank">tiptoi-bounces@lists.nomeata.de</a>] <b>Im Auftrag von </b>Christoph Weber<br><b>Gesendet:</b> Montag, 17. September 2018 08:47<br><b>An:</b> <a href="mailto:tiptoi@lists.nomeata.de" target="_blank">tiptoi@lists.nomeata.de</a><br><b>Betreff:</b> Re: [Tiptoi] Pseudo Zufallsgenerator<u></u><u></u></span></p></div></div><p class="MsoNormal"><u></u> <u></u></p><p>Hi Marcel,<u></u><u></u></p><p>ich versuch mal eine kurze Erklärung was hier passiert:<u></u><u></u></p><p>T($r, 65535) liest den Timer aus und "begrenzt" ihn über die modulo-funktion auf 0-65535.<u></u><u></u></p><p>Das register $rnd enthält den aktuellen Zufallszahlen-Seed-Wert; initial 0, nach $rnd+=$r steht darin die maskierte Zeit von eben. Beim nächsten Durchlauf (also nächster Zufallszahl) wird wieder die aktuelle Zeit addiert um eine zufälligere Streuung zu erzeugen. <u></u><u></u></p><p>Danach wird der Wert mit 25173 multipliziert -  der Wert ist relativ willkürlich aber in der Literatur und typischen Implementierungen zu finden; ebenso der Werte 13849 der aufaddiert wird. Das ganze dient nur dazu bei jeder Zufallszahl einen neuen seed-Wert zu bekommen aus dem die eigentliche Zufallszahl berechnet wird.<u></u><u></u></p><p>Man kann für die beiden Konstanten auch andere Werte verwenden, aber bei ungeeigneten Konstanten ist der Zufall halt schlechter oder gar nicht mehr vorhanden (z.B. Multipliator 0 oder 1 oder beim offset kleine Zahlen. Der Multiplikator sollte z.B. auch immer ungerade sein, sonst kommen (wegen des ungeraden Offsets) nur ungerade Würfelergebnisse raus.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p>Deine Version würde zwar auch Zufallszahlen erzeugen, aber mit einer erheblich schlechteren Streuung weil der seed-Wert nur noch von der aktuellen Zeit abhängt - Extrembeispiel: dreimal in der gleichen Sekunde würde dreimal der gleiche "Zufallswert"erzeugt. Deshalb auch das dritte register $r - um es auf $rnd aufzuaddieren.<u></u><u></u></p><p>Die Befehle $wuerfel%=6 und $wuerfel+=1 sind nur dazu da um die Zufallszahl zuerst auf 0-5 zu begrenzen und dann um 1 zu erhöhen damit Würfelaugen herauskommen.<u></u><u></u></p><p><u></u> <u></u></p><p>Oder als Formel geschrieben:<u></u><u></u></p><p>  $rnd = ($rnd + AktuelleZeitInSekunden modulo 65535) * 25173 + 13849 <u></u><u></u></p><p>  $wuerfel= ($rnd modulo 6) + 1<u></u><u></u></p><p><u></u> <u></u></p><p><u></u> <u></u></p><p>Schöne Grüße<u></u><u></u></p><p> christoph<u></u><u></u></p><p><u></u> <u></u></p><div><p class="MsoNormal">Am 17.09.2018 um 07:59 schrieb Marcel Eilers:<u></u><u></u></p></div><blockquote style="margin-top:5pt;margin-bottom:5pt"><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">- T($r,65535) $rnd+=$r $rnd*=25173 $rnd+=13849 $wuerfel:=$rnd $wuerfel%=6 $wuerfel+=1<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></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"> <u></u><u></u></p><p class="MsoNormal">- T($wuerfel,65535) $wuerfel*=25173 $wuerfel+=13849 $wuerfel%=6 $wuerfel+=1<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></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><p class="MsoNormal"><span style="font-size:12pt;font-family:"Times New Roman","serif""><br><br><u></u><u></u></span></p></blockquote><p class="MsoNormal"><span style="font-size:12pt;font-family:"Times New Roman","serif""><u></u> <u></u></span></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></div><div></div></div></div></div></div></div></div></div></div></div></div>