wuerfel04

probability
dice
simulation
Published

October 28, 2022

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ür set.seed() genannt, verwenden Sie die Zahl 42.
  • 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 Zahl 43.











Solution

library(tidyverse)

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] 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.

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] 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)
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)
# 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