Zufallszahlen
Inhaltsverzeichnis |
Zufallszahlen
Erzeugen von Zufallszahlen
Anwendung: 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.
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 zunächst einen Algorithmus in einem Struktogramm dar.
Entscheide Dich bewusst für function oder procedure.
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;