<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html;
      charset=windows-1252">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi Marcel,</p>
    <p>ich versuch mal eine kurze Erklärung was hier passiert:<br>
    </p>
    <p>T($r, 65535) liest den Timer aus und "begrenzt" ihn über die
      modulo-funktion auf 0-65535.</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. <br>
    </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.</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.<br>
    </p>
    <br>
    <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.</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.</p>
    <p><br>
    </p>
    <p>Oder als Formel geschrieben:<br>
    </p>
    <p>  $rnd = ($rnd + AktuelleZeitInSekunden modulo 65535) * <span
        style="font-family:"Courier
        New";mso-fareast-language:DE">25173 + </span><span
        style="font-family:"Courier
        New";mso-fareast-language:DE">13849 </span></p>
    <p>  $wuerfel= ($rnd modulo 6) + 1</p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p>
    </p>
    <p>Schöne Grüße</p>
    <p> christoph</p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">Am 17.09.2018 um 07:59 schrieb Marcel
      Eilers:<br>
    </div>
    <blockquote type="cite"
      cite="mid:001a01d44e4b$8cd26760$a6773620$@t-online.de">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 14 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal">Guten Morgen,<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></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.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Also der Standard Generator lautet:<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><span style="font-family:"Courier
            New";mso-fareast-language:DE">- T($r,65535) $rnd+=$r
            $rnd*=25173 $rnd+=13849 $wuerfel:=$rnd $wuerfel%=6
            $wuerfel+=1<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier
            New";mso-fareast-language:DE"><o:p> </o:p></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.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Warum werden für diese Funktion 3 Register
          verwendet?? Man könnte dies auch so schreiben:<o:p></o:p></p>
        <p class="MsoNormal"><span style="font-family:"Courier
            New";mso-fareast-language:DE"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier
            New";mso-fareast-language:DE">- T($wuerfel,65535)
            $wuerfel*=25173 $wuerfel+=13849 $wuerfel%=6 $wuerfel+=1<o:p></o:p></span></p>
        <p class="MsoNormal"><span style="font-family:"Courier
            New";mso-fareast-language:DE"><o:p> </o:p></span></p>
        <p class="MsoNormal">Dann hätte ich das um 2 Befehle reduziert…<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Welche Bedeutung haben die Zahlen 25173 und
          13849???? Ist das willkürlich?<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Wäre schön, wenn mir jemand dieser Funktion
          einfach nur mal erläutern könnte. Dies einfach nur
          interessehalber…<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Vielen Dank für Eure Bemühungen.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Schöne Grüße<o:p></o:p></p>
        <p class="MsoNormal">Marcel<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
    </blockquote>
    <br>
  </body>
</html>