wuerfel():=random(6)+1$

[wuerfel(), wuerfel(), wuerfel()];

liste:makelist(wuerfel(),i,1,20);

Mit welcher Wahrscheinlichkeit haben in einer Gruppe von k zufällig
ausgewählte Personen zwei am selben Tag Geburtstag?

Definieren einer Funktion, die überprüft, ob bei einer zufällig 
gewählten Liste von Geburtstagen doppelte Einträge auftreten.

geb(k):=block([i:0, j1:0, zahl:0, v:[]],
  liste:makelist(random(365),i,0,k),
  for j1:1 while j1<k do
    for j2:(j1+1) while j2<=k do
      if liste[j1]=liste[j2] then v:append(v,[liste[j1]]),
  return(v)
)$

Wir wählen 30 zufällig ausgewählte Geburtsdaten und überprüfen,
ob es Doubletten (2 am selben Tag) gibt.

geb(30);

Eingabe einer Formel für die Berechnung der Wahrscheinlichkeit

WGeb(k):=1-product((365-i)/365,i,0,k-1);

Zwischen 22 und 23 Personen liegt die Grenze, ab der die 
Wahrscheinlichkeit, dass 2 Anwesende am gleichen Tag Geb.Tag
haben, bereits höher als 0.5 liegt!

[float(WGeb(22)), float(WGeb(23))];

Plot einer Liste der Wahrscheinlichkeiten

liste1:makelist([k,WGeb(k)],k,10,50)$

wxplot2d([discrete, liste1],[x,0,60],[y,-0.3,1.3]);