Simulation von Würfeln, Münzen,… Referat am 18.12.2006 von Nadja Ullmann
Gliederung Simulationen Stabilisierung der relativen Häufigkeit Aufgaben Zusammenfassung
Würfel Mit einem Würfel: Würfeln: > w<-floor(runif(10,1,7)) [1] 6 6 2 4 3 6 3 1 5 1 Tabelle: > t<-table(w) > t w 1 2 3 4 5 6 2 1 2 1 1 3 Mit zwei Würfeln: > wu<-floor(runif(10,1,7)) > wu2<-floor(runif(10,1,7)) > zu<-cbind(wu,wu2) > zu wu wu2 [1,] 5 1 [2,] 6 3 [3,] 6 6 [4,] 1 1 [5,] 4 3 [6,] 3 4 [7,] 4 6 [8,] 3 1 [9,] 3 5 [10,] 1 4
Münzen Werfen einer Münze: > m<-floor(runif(10,1,3)) Tabelle: [1] 1 1 2 2 2 2 1 1 2 2 Tabelle: > mu<-table(m) > mu m 1 2 4 6
Urnen Mit Zurücklegen: 1=rote Kugel 2=blaue Kugel 3=gelbe Kugel Anzahl der Kugeln in der Urne: k<-c(1,1,2,2,2,3) Zuordnung: k<-c(1,2,3,4,5,6) 10-maliges Ziehen aus der Urne: > l<-floor(runif(10,1,7)) > l [1] 6 3 1 4 4 4 2 4 2 6
Rücksubstitution: > zo<-l > zo[l==1]<-1 > zo[l==2]<-1 > zo[l==3]<-2 > zo[l==4]<-2 > zo[l==5]<-2 > zo[l==6]<-3 Ergebnis: > zo [1] 3 2 1 2 2 2 1 2 1 3
Ohne Zurücklegen: e<-c(1,1,1,1,2,2,2,3) 8-maliges Ziehen aus der Urne: > s<-sample(8) > s [1] 1 4 3 6 5 8 7 2 Ergebnis: > zu<-e[s] > zu [1] 1 1 1 2 2 3 2 1
Lotto > x<-c(1:49) Zufälliges Erzeugen von sechs Zahlen von 1 bis 49: > s<-sample(x,6) > s [1] 37 4 12 5 21 30
Roulette Eine einzelne Zahl: > r<-floor(runif(1,0,37)) > r [1] 2 Eine Farbe: 0=0 1=rot 2=schwarz d<-c(0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2) > z<-floor(runif(1,0,37)) > z [1] 7 (=rot)
Kritik Sehr umständliche Befehle Vor allem bei Simulation von zwei Würfeln, Münzen,… sehr aufwändig Urnen sind sehr schwierig zu simulieren Lotto einfach Beim Roulette kann man einzelne Zahlen leicht erzeugen, Farben komplizierter
Würfel mit anderer Seitenanzahl Tetraeder: > t<-floor(runif(20,1,5)) > t [1] 4 2 4 2 3 3 1 2 1 1 1 1 2 3 1 2 2 1 2 2 Ikosaeder: (20 Dreiecksflächen) > j<-floor(runif(30,0,20)) > j [1] 19 6 18 16 3 13 13 4 5 18 15 2 12 0 1 10 [16] 13 3 13 14 7 19 1 18 18 19 15 14 15 16
Gleichzeitiges Werfen von Würfel und Münze Werfen der Münze: > m<-floor(runif(20,1,3)) > m [1] 2 1 1 2 2 2 1 2 1 2 2 2 2 2 2 2 2 2 1 2 Werfen des Würfels: > w<-floor(runif(20,1,7)) > w [1] 6 2 2 6 3 1 6 1 3 3 4 3 2 4 5 5 5 6 6 4
Tabelle: > t<-table(m,w) > t w m 1 2 3 4 5 6 1 0 2 1 0 0 2 Zusammenfügen: > r<-rbind(m,w) > r [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] m 2 1 1 2 2 2 1 2 1 2 2 2 2 2 w 6 2 2 6 3 1 6 1 3 3 4 3 2 4 [,15] [,16] [,17] [,18] [,19] [,20] m 2 2 2 2 1 2 w 5 5 5 6 6 4 Tabelle: > t<-table(m,w) > t w m 1 2 3 4 5 6 1 0 2 1 0 0 2 2 2 1 3 3 3 3
Stabilisierung der relativen Häufigkeit Würfeln: > c<-floor(runif(100,1,7)) c [1] 6 5 5 3 6 6 2 1 4 3 2 5 2 1 2 4 1 2 2 1 3 2 2 6 5 3 6 6 5 5 3 6 2 6 6 5 1 [38] 2 2 5 4 3 1 1 6 4 1 6 1 6 5 4 2 4 5 6 1 1 3 3 6 1 1 3 4 4 2 1 1 2 2 6 1 3 [75] 3 2 3 4 4 6 6 1 6 6 3 4 4 6 3 4 1 3 4 5 5 2 3 5 4 5 Absolute Häufigkeiten: Relative Häufigkeiten > t<-table(c) > k<-t/sum(t) > t > k c c 1 2 3 4 5 6 1 2 3 4 5 6 18 17 16 15 14 20 0.18 0.17 0.16 0.15 0.14 0.20
d<-table(floor(runif(500,1,7))) 500 Würfe: d<-table(floor(runif(500,1,7))) > d 1 2 3 4 5 6 72 88 98 79 69 94 > l<-c/sum(c) > l 1 2 3 4 5 6 0.144 0.176 0.196 0.158 0.138 0.188 5000 Würfe: > n<-f/sum(f) > n 1 2 3 4 5 6 0.1606 0.1650 0.1724 0.1680 0.1662 0.1678
100000 Würfe: > p<-h/sum(h) 1000000 Würfe: > q<-i/sum(i) 1 2 3 4 5 6 0.16505 0.16543 0.16639 0.16792 0.16721 0.16800 1000000 Würfe: > q<-i/sum(i) > q 1 2 3 4 5 6 0.166552 0.166689 0.166694 0.166377 0.167116 0.166572
Diagramm zeichnen > c<-table(floor(runif(100,1,7))) > d<-table(floor(runif(500,1,7))) > e<-table(floor(runif(1000,1,7))) > f<-table(floor(runif(5000,1,7))) > g<-table(floor(runif(10000,1,7))) > h<-table(floor(runif(100000,1,7))) > i<-table(floor(runif(1000000,1,7))) > k<-c/sum(c) > l<-d/sum(d) > m<-e/sum(e) > n<-f/sum(f) > o<-g/sum(g) > p<-h/sum(h) > q<-i/sum(i) > zu[1]<-k[6] > zu[2]<-l[6] > zu[3]<-m[6] > zu[4]<-n[6] > zu[5]<-o[6] > zu[6]<-p[6] > zu[7]<-q[6]
Diagramme > plot(zu)
> x<-c(100,500,1000,5000,10000,100000,1000000) > plot(x,zu)
Kritik Zeigt anschaulich die Annäherung an die relative Häufigkeit 1/6 Im ersten Diagramm sieht man die Annäherung sehr gut, aber die Skalierung der x-Achse ist falsch Im zweiten Diagramm stimmt die Skalierung der x-Achse, aber man erkennt nicht mehr viel
Das d´Alembertsche Münzproblem Zwei nicht unterscheidbare Münzen werden gleichzeitig geworfen. Wie groß ist die Wahrscheinlichkeit, dass mindestens einmal Kopf erscheint? Sind die Ereignisse (K,K), (Z,Z), (K,Z) gleichberechtigt oder nicht?
Unterstützung durch R? Werfen von zwei Münzen: > m<-floor(runif(20,1,3)) > o<-floor(runif(20,1,3)) Zusammenfügen: > rbind(m,o) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] m 2 1 1 2 2 2 1 2 1 2 2 2 2 2 o 2 1 1 2 1 1 2 1 1 1 2 1 1 2 [,15] [,16] [,17] [,18] [,19] [,20] m 2 2 2 2 1 2 o 2 2 2 2 2 2
Bilden der Summe: > zu<-m+o Tabelle: > ta<-table(zu) > ta zu 2 3 4 6 8 6 Zuordnung der Merkmale: > wk<-zu > wk[zu==2]<-"KK" > wk[zu==3]<-"ZK" > wk[zu==4]<-"ZZ" Tabelle mit Merkmalen: > table(wk) wk KK ZK ZZ 6 8 6 Aufgespaltene Tabelle: > t<-table(m,o) > t o m 1 2 1 6 6 2 2 6
Graphische Darstellung > barplot(ta)
100 Münzwürfe Tabelle mit Merkmalen: Zweifacher Würfelwurf: > wz<-zus > wz[zus==2]<-"KK" > wz[zus==3]<-"KZ" > wz[zus==4]<-"ZZ" > table(wz) wz KK KZ ZZ 26 50 24 Aufgespaltene Tabelle: > ta<-table(n,p) > ta p n 1 2 1 26 18 2 32 24 Zweifacher Würfelwurf: > n<-floor(runif(100,1,3)) > p<-floor(runif(100,1,3)) Summe bilden: > zus<-n+p Tabelle: > tab<-table(zus) > tab zus 2 3 4 26 50 24
Graphische Darstellung > barplot(tab)
Kritik Unterstützung durch R sinnvoll Simulation auch bei größerer Zahlenmenge möglich Nur sehr schwer möglich, zwei nicht unterscheidbare Münzen zu werfen, wie hier eigentlich nötig
Würfel-Paradoxon Wenn man zwei nicht unterscheidbare Würfel wirft, sind sowohl die 9 als auch die 10 auf zwei verschiedenen Wegen erhältlich. Wenn man drei nicht unterscheidbare Würfel wirft, können sich die 9 und die 10 auf jeweils sechs verschiedenen Arten ergeben. Wieso erhält man bei zwei Würfeln häufiger 9 als 10, bei drei Würfeln 10 öfter als 9?
Unterstützung durch R? Zweifacher Würfelwurf: Aufgespaltene Tabelle: > w<-floor(runif(100,1,7)) > v<-floor(runif(100,1,7)) Bilden der Augensumme: > zu<-w+v Tabelle: > ta<-table(zu) > ta zu 2 3 4 5 6 7 8 9 10 11 12 2 10 5 16 10 15 10 16 6 7 3 Aufgespaltene Tabelle: > t<-table(w,v) > t v w 1 2 3 4 5 6 1 2 3 2 5 1 4 2 7 1 7 2 0 0 3 2 1 1 3 3 5 4 3 4 4 4 6 1 5 2 1 1 4 2 3 6 3 2 1 3 4 3
Dreifacher Würfelwurf: > a<-floor(runif(100,1,7)) > b<-floor(runif(100,1,7)) > c<-floor(runif(100,1,7)) Bilden der Augensumme: > zus<-a+b+c Tabelle: > tabl<-table(zus) > tabl zus 5 6 7 8 9 10 11 12 13 14 15 16 17 3 3 11 9 9 12 11 17 8 8 6 2 1
> tab<-table(a,b,c) 1 0 0 0 1 2 0 2 0 1 0 2 0 0 3 1 0 1 0 0 0 4 1 0 0 0 0 1 5 1 1 1 2 0 2 6 0 1 0 0 1 0 , , c = 2 1 0 1 1 1 0 1 2 0 0 0 0 0 1 3 0 0 1 1 1 0 4 0 0 0 0 0 1 5 1 1 1 0 0 2 6 0 0 0 2 0 1 , , c = 3 b a 1 2 3 4 5 6 1 0 0 1 2 0 0 2 0 0 0 0 0 1 3 2 0 0 0 0 0 4 0 0 0 1 0 0 5 2 0 0 1 1 1 6 0 1 0 0 1 1 , , c = 4 1 0 0 2 1 0 2 2 0 0 0 1 0 1 3 1 0 0 0 0 1 4 1 2 0 1 0 0 5 0 0 0 0 0 0 6 0 0 1 0 0 0 , , c = 5 b a 1 2 3 4 5 6 1 1 0 0 0 0 0 2 1 0 0 0 1 0 3 0 1 0 0 0 0 4 1 1 1 1 1 0 5 1 2 0 0 1 0 6 1 1 1 1 1 0 , , c = 6 1 0 0 2 1 0 0 2 0 0 0 1 0 0 3 0 0 0 0 1 1 4 2 2 0 1 0 0 5 0 0 1 0 1 1 6 1 0 2 0 0 0
Graphische Darstellung Mit zwei Würfeln: > plot(ta)
Mit drei Würfeln: > plot(tab)
Kritik Kann zeigen, dass bei zweimaligem Würfeln die 9, bei dreimaligem Würfeln die 10 öfter vorkommt Die graphische Darstellung verdeutlicht dies noch Die aufgespaltenen Tabellen sind besonders bei dreimaligem Würfelwurf sehr unübersichtlich
Augensummen bei zwei Würfeln 100 mal würfeln: > d<-floor(runif(100,1,7)) > e<-floor(runif(100,1,7)) Augensumme: > z<-d+e Tabelle: > t<-table(z) > t z 2 3 4 5 6 7 8 9 10 11 12 3 3 11 10 13 18 12 16 6 4 4
Diagramm > plot(t)
1000000 mal würfeln: > f<-floor(runif(1000000,1,7)) > g<-floor(runif(1000000,1,7)) Augensumme: > zu<-f+g Tabelle: > ta<-table(zu) > ta zu 2 3 4 5 6 7 8 28078 55718 83552 110740 139410 166052 138318 9 10 11 12 111122 83539 55718 27753
Angaben in Prozent: > pr<-100*ta/sum(ta) > pr zu 2 3 4 5 6 7 2.8078 5.5718 8.3552 11.0740 13.9410 16.6052 8 9 10 11 12 13.8318 11.1122 8.3539 5.5718 2.7753 Gerundet: > ro<-round(pr,2) > ro 2 3 4 5 6 7 2.81 5.57 8.36 11.07 13.94 16.61 8 9 10 11 12 13.83 11.11 8.35 5.57 2.78
> rb<-rbind(ta,ro) 2 3 4 5 6 7 ta 28078.00 55718.00 83552.00 110740.00 139410.00 166052.00 ro 2.81 5.57 8.36 11.07 13.94 16.61 8 9 10 11 12 ta 138318.00 111122.00 83539.00 55718.00 27753.00 ro 13.83 11.11 8.35 5.57 2.78 > t(rb) ta ro 2 28078 2.81 3 55718 5.57 4 83552 8.36 5 110740 11.07 6 139410 13.94 7 166052 16.61 8 138318 13.83 9 111122 11.11 10 83539 8.35 11 55718 5.57 12 27753 2.78
Diagramm > plot(ta)
Kritik Zeigt sehr anschaulich die Annäherung an die verschiedenen Wahrscheinlichkeiten Besonders das Diagramm verdeutlicht dies
Würfelspiel Man hat einen Laplace-Würfel, dessen Flächen die Ziffern 1,1,1,1,2,2 tragen. Mit diesem Würfel wird dreimal gewürfelt. Erscheint dabei die Eins öfter als die Zwei, dann gewinnt A, sonst gewinnt B. Wenn A gewinnt, bekommt er eine Geldeinheit. Gewinnt B, so erhält er zwei Geldeinheiten. Kann B mit dieser Vereinbarung zufrieden sein?
Unterstützung durch R? Ziffern der Seiten des Würfels: w<-c(1,1,1,1,2,2) Zuordnung: w<-c(1,2,3,4,5,6) > ww<-floor(runif(100,1,7)) > wx<-floor(runif(100,1,7)) > wy<-floor(runif(100,1,7)) Zusammenfügen: > r<-rbind(ww,wx,wy) > r [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] ww 3 3 2 4 6 1 6 6 4 1 6 2 4 6 wx 5 2 1 4 5 2 2 6 1 4 4 4 3 2 wy 1 2 2 6 1 3 4 1 2 2 6 6 2 1
Rücksubstitution: > tt<-r > tt[r<5]<-1 [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] [,12] [,13] [,14] ww 1 1 1 1 2 1 2 2 1 1 2 1 1 2 wx 2 1 1 1 2 1 1 2 1 1 1 1 1 1 wy 1 1 1 2 1 1 1 1 1 1 2 2 1 1 Zählen der Würfe mit mindestens zweimal Zahl: > Ag<-apply(tt,2,sum) > T<-sum(Ag>4) > T [1] 17
Kritik Unterstützt die Aufgabe nicht sehr Man kann die Lösung nur bestätigen
Fazit Für Schule nicht sehr sinnvoll, da die Befehle sehr umständlich sind und es keine expliziten Befehle für Simulationen gibt Nur wenige Aufgaben, die für die Schule relevant sind, können durch R unterstützt werden Für Stabilisierung der relativen Häufigkeit ist R nützlich, da man eine hohe Anzahl von Versuchen simulieren kann Für Schüler selbst sind die Befehle zu kompliziert, Lehrer kann R zur Veranschaulichung im Unterricht verwenden