library(tidyverse)
wuerfel04
Exercise
Was ist die Wahrscheinlichkeit, mit zwei fairen Würfeln genau 10 Augen zu werfen?
Hinweise:
- Nutzen Sie Simulationsmnethoden der Wahrscheinlichkeitsrechnung, keine exakten Rechnung auf Basis der Wahrscheinlichkeitsrechnung.
- Geben Sie Anteile oder Wahrscheinlichkeiten stets mit zwei Dezimalstellen an (sofern nicht anders verlangt).
- Setzen Sie bei Simulationsaufgaben immer die Zufallszahlen mit
set.seed()
. Sofern kein anderer Wert fürset.seed()
genannt, verwenden Sie die Zahl42
. - Da es bei dieser Aufgabe nötig ist, zwei Mal Zufallszahlen zu berechnen (für zwei Würfel nämlich), verwenden Sie beim ersten Würfel die Zahl
42
und beim zweiten Würfel die Zahl43
.
Solution
Einen Würfelwurf in R kann man so simulieren:
<- sample(x = c(1,2,3,4,5,6), size = 1, prob = c(1/6, 1/6, 1/6, 1/6, 1/6, 1/6))
wuerfel wuerfel
[1] 1
Bei sample
gibt x
den Ereignisraum, \(\Omega\), an, size
die Stichprobengröße und prob
gibt für jedes Element von x
die Wahrscheinlichkeit an.
Das machen wir jetzt 1000 Mal. Viel Spaß beim Tippen…
… … …
Okay, das sollten wir einfacher hinkriegen. Man kann R sagen, dass sie eine Funktion (wie sample
) oft ausführen soll. Damit können wir viele Würfelwürfe simulieren. Diese “Wiederholungsfunktion” heißt replicate(n, expr)
; dabei gibt n
an, wie oft die Funktion wiederholt werden soll, und expr
ist der Ausdruck (die Funktion), die wiederholt werden soll, das ist bei uns die Funktion sample
, wie oben dargestellt.
<- replicate(n = 10, expr = sample(x = c(1,2,3,4,5,6), size = 1, prob = c(1/6, 1/6,1/6,1/6,1/6,1/6)))
zehn_wuerfel zehn_wuerfel
[1] 5 6 3 3 5 6 4 4 6 2
Können wir natürlich auch zich Mal wiederholen, nicht nur 10 Mal, sagen wir \(10^4\) Mal:
set.seed(42)
<- replicate(n = 10^4, expr = sample(x = c(1,2,3,4,5,6), size = 1, prob = c(1/6, 1/6,1/6,1/6,1/6,1/6)))
wuerfel1_oft
mean(wuerfel1_oft)
[1] 3.4968
Ah, interessant: Der Mittelwert ist etwa 3.5…
Jetzt werfen wir noch einen zweiten Würfel genau so oft:
set.seed(43)
<- replicate(n = 10^4, expr = sample(x = c(1,2,3,4,5,6), size = 1, prob = c(1/6, 1/6,1/6,1/6,1/6,1/6)))
wuerfel2_oft
mean(wuerfel2_oft)
[1] 3.4983
Das packen wir jetzt in eine Tabelle und ergänzen die Augensumme für jede Wiederholung des Doppelwurfes:
<-
d tibble(w1 = wuerfel1_oft,
w2 = wuerfel2_oft,
w_sum = w1+w2)
head(d)
w1 | w2 | w_sum |
---|---|---|
1 | 4 | 5 |
1 | 1 | 2 |
3 | 2 | 5 |
6 | 6 | 12 |
5 | 3 | 8 |
5 | 5 | 10 |
Jetzt ist es einfach:
Wir zählen einfach, wie oft das Ergebnis 10 vorkommt in der Tabelle.
%>%
d count(w_sum == 10)
w_sum == 10 | n |
---|---|
FALSE | 9148 |
TRUE | 852 |
Ergänzen wir die Anteile dieser Anzahl:
%>%
d count(w_sum == 10) %>%
mutate(Anteil = n/sum(n))
w_sum == 10 | n | Anteil |
---|---|---|
FALSE | 9148 | 0.9148 |
TRUE | 852 | 0.0852 |
Die Lösung lautet also: 0.08
(gerundet auf zwei Dezimalen)
Auf einfache Weise können wir entsprechend die Wahrscheinlichkeit für mindestens \(k\) Augen (bei zwei Würfelwürfen) ermitteln, mit \(k\) ist die gesuchte Augensumme, hier 10.
%>%
d count(w_sum >= 10) %>%
mutate(Anteil = n/sum(n))
w_sum >= 10 | n | Anteil |
---|---|---|
FALSE | 8316 | 0.8316 |
TRUE | 1684 | 0.1684 |
Oder höchstens 10, ganz analog:
%>%
d count(w_sum <= 10) %>%
mutate(Anteil = n/sum(n))
w_sum <= 10 | n | Anteil |
---|---|---|
FALSE | 832 | 0.0832 |
TRUE | 9168 | 0.9168 |
Categories:
- probability
- dice
- simulation