Zufallszahlen

Aus ProgrammingWiki
Archivierte Version vom 2012-06-25T12:21:28+00:00. Aktuelle Version

Inhaltsverzeichnis

Zufallszahlen und Würfelspiele


In den nächsten (letzten) Übungen mit dem PWiki werden wir noch ein paar "Spiele" mit Zufallszahlen erstellen. Anschließend werden wir mit einer Anwendersoftware (Fischer-Technik) Modelle bauen und steuern!

Doch zunächst:

Erzeugen von Zufallszahlen



<eval id="4cec1965a9ae3"> begin writeln(inttostr(zufall(100))); end.</eval>


Würfeln


Nun sollen nur Ergebnisse zufällig erzeugt werden, wie sie an einem idealen Würfel eintreten können.
Ergänze die Boxen analog dem obigen Beispiel und teste das Ergebnis.


<eval id="4cec1965a9bf2"> begin // dein Text end.</eval>


Simuliere nun ein Würfelspiel mit einem idealen Würfel. Für eine Anzahl n von Würfen soll die Anzahl aller geworfenen Augenzahlen ausgegeben werden.

Hinweis: Es soll also für jede mögliche Augenzahl eine Variable vereinbart werden, eine beliebige Anzahl von (simulierten)
Versuchen durchgeführt werden und die Anzahl der gewürfelten Einsen, Zweien, ..., Sechsen ausgegeben werden.

Stelle den notwendigen Algorithmus in einem Struktogramm dar.
Benutze dazu das Tool structorizer.

  • Erstelle mit dem Programm das Struktogramm
  • Speichere das Struktogramm als Bild (Format .jpg)
  • füge dein Bild im PWiki ein


Struktugramm.jpgNmalwürfeln.jpg
LucieMartinJennifer
Wurf.jpgWürfel.jpgWuerfelspiel.jpg
TillFlorianSebastian
Wuerfeln.jpgWuerfel.jpgStructoricer.jpg
IvanRonnyMarko
Zufall-Würfeln.jpgWürfeln_matschi.jpgWürfel2.jpg
ClaudiaMaximilianLucas



<eval id="4cec1965a9d02"></eval>



Wir stellen fest, dass eine function nur einen Wert (ein Resultat) zurückliefern kann.
Daher brauchen wir eine weitere Möglichkeit, die mehrere Ergebnisse liefert.
Dies geschieht unter Verwendung einer procedure, wobei die Rückgabewerte (Ergebnisvariablen) mit var angefügt werden (vergleiche Box).



<eval id="4d243865b40ec"></eval>


Formuliere anhand der Simulation eine Aussage über die Wahrscheinlichkeit der einzelnen Ergebnisse beim Würfeln.


zum Weiterarbeiten: Zeige durch eine analoge Simulation, dass die Zufallsgröße "Augensumme beim Würfeln mit zwei idealen Würfeln" nicht gleichverteilt ist.


Zufallszahlen


Erzeugen von Zufallszahlen

zunächst als function, die aufgerufen wird:


<eval id="4be10a1ebb218"> begin writeln(inttostr(zufall(100))); end.</eval>


andere, kürzere Variante:

<eval id="4be1207f5f5c1"> begin writeln(inttostr(random(100))); end. </eval>

Ist diese Variante für Programme praktikabel?


Würfeln


Simulieren Sie ein Würfelspiel mit einem idealen Würfel. Für eine Anzahl n von Würfen soll die Anzahl der geworfenen Augenzahlen ausgegeben werden.


<eval id="4bf2b9d356f46"></eval>


Formulieren Sie anhand der Simulation eine Aussage über große Zahlen und die Wahrscheinlichkeit. ("Gesetz der großen Zahlen")


zum Weiterarbeiten: Zeigen Sie durch eine analoge Simulation, dass die Zufallsgröße "Augensumme beim Würfeln mit zwei idealen Würfeln" nicht gleichverteilt ist.



procedure wuerfelsumme(n:integer;var z,d,v,f,s,si,a,ne,ze,e,zw:integer);
var i,zz1,zz2,sum:integer;
begin
z:=0;d:=0;v:=0;f:=0;s:=0;si:=0;a:=0;ne:=0;ze:=0;e:=0;zw:=0;
for i:=1 to n do 
begin
zz1:=random(6)+1;
zz2:=random(6)+1;
sum:=zz1+zz2;
if sum=2 then z:=z+1;
if sum=3 then d:=d+1;
if sum=4 then v:=v+1;
if sum=5 then f:=f+1;
if sum=6 then s:=s+1;
if sum=7 then si:=si+1;
if sum=8 then a:=a+1;
if sum=9 then ne:=ne+1;
if sum=10 then ze:=ze+1;
if sum=11 then e:=e+1;
if sum=12 then zw:=zw+1;
end;
end;