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] 5
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] 2 6 3 2 6 3 6 5 3 1
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)
# A tibble: 6 × 3
w1 w2 w_sum
<dbl> <dbl> <dbl>
1 1 4 5
2 1 1 2
3 3 2 5
4 6 6 12
5 5 3 8
6 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)
# A tibble: 2 × 2
`w_sum == 10` n
<lgl> <int>
1 FALSE 9148
2 TRUE 852
Ergänzen wir die Anteile dieser Anzahl:
%>%
d count(w_sum == 10) %>%
mutate(Anteil = n/sum(n))
# A tibble: 2 × 3
`w_sum == 10` n Anteil
<lgl> <int> <dbl>
1 FALSE 9148 0.915
2 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))
# A tibble: 2 × 3
`w_sum >= 10` n Anteil
<lgl> <int> <dbl>
1 FALSE 8316 0.832
2 TRUE 1684 0.168
Oder höchstens 10, ganz analog:
%>%
d count(w_sum <= 10) %>%
mutate(Anteil = n/sum(n))
# A tibble: 2 × 3
`w_sum <= 10` n Anteil
<lgl> <int> <dbl>
1 FALSE 832 0.0832
2 TRUE 9168 0.917
Categories:
- probability
- dice
- simulation