PMG2022/Felder und Zufallszahlen

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Javascript</language>
== Zufallszahlen ==

Mit den nachfolgenden Funktionen lassen sich beliebige Zufallszahlen ereugen:

 Math.random() ... erzeugt eine (rationale) Zufallszahl $z$ im Intervall $0 \le z < 1$
 Math.floor(z) ... rundet die Zahl $z$ auf die nächstniedrigere ganze Zahl ab

Experimentiere mit diesen Funktionen, so dass große ''ganze'' Zufallszahlen generiert werden.

<run id="60dcb992c63d5">
Math.floor(Math.random() * 10);
</run>

Nun wird das Werfen eines Würfels simuliert.

<code id="60dcb992c6332">
function wuerfelzahl() {
 var w = Math.floor(Math.random() * 6 + 1);
 return w;
}
</code>

<run id="60dcba5eaaba1">
wuerfelzahl();
</run>

Hier wird ganz oft gewürfelt. <br>
Was passiert genau?

<code id="60dcbb8649ec8">
function wuerfe() {
 var w1 = 0, w2 = 0, z = 0;
 do {
  w2 = w1;
  w1 = wuerfelzahl();
  z++;
 }
 while (w1 != 6 || w2 != 6);
 return z;
}

function wuerfeln(anz) {
 var z = 0, mw = 0;
 for (var i = 1; i <= anz; i++)
  z = z + wuerfe();
 mw = z / anz;
 return mw;
}
</code>

<run id="60dcbb8649f58">
wuerfeln(10000);
</run>


== Zufallszahlen und Felder ==

Hier wird eine Anzahl Zufallszahlen ZZ aus einem Intervall "von" "bis" erzeugt.

<code id="60af9dd9355f3">
function erzeuge_Anzahl_ZZ(von, bis, anz) {
 var feld = new Array();
 for (var i = 0; i < anz; i++)
  feld[i] = Math.floor(Math.random() * (bis - von + 1) + von); 
 return feld;
}
</code>

<run id="60af9dd9356ea">
erzeuge_Anzahl_ZZ(10,50,10);
</run>


== Würfeln mit einem Würfel ==

Zunächst sei das Würfeln ohne Felder implementiert:

<code id="60dcbfe329ac7">
var z1 = 0, z2 = 0, z3 = 0, z4 = 0, z5 = 0, z6 = 0;

function wuerfelexp(anzahl) {
 for (var i = 1; i <= anzahl; i++) {
  var zufall = Math.floor(Math.random() * 6 + 1);
  switch (zufall) {
   case 1: z1++; break; 
   case 2: z2++; break;
   case 3: z3++; break;
   case 4: z4++; break;
   case 5: z5++; break;
   default: z6++;
  }
 }
 console.log("Augenzahl 1: " + z1);
 console.log("Augenzahl 2: " + z2);
 console.log("Augenzahl 3: " + z3);
 console.log("Augenzahl 4: " + z4);
 console.log("Augenzahl 5: " + z5);
 console.log("Augenzahl 6: " + z6);
}

</code>

<run id="60dcbfe329b49">
wuerfelexp(1000);

</run>