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
42und beim zweiten Würfel die Zahl43.
Solution
Einen Würfelwurf in R kann man so simulieren:
wuerfel <- 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[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.
zehn_wuerfel <- 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 [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)
wuerfel1_oft <- 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)))
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)
wuerfel2_oft <- 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)))
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