Sannolikheten för fyrtal med Python

Från Wikiskola
Hoppa till navigering Hoppa till sök
Programmeringsuppgift

Python-hjälp och Fler uppgifter

Mål för undervisningen Kom igång med programmering i matematiken.

Målet är att du ska använda program för att utföra matematiska beräkningar. Du bör testa att modifiera algoritmen så att dina beräkningar blir mer effektiva.

Målet är inte att du ska lära dig programmering på matematiklektionen men det är oundvikligt att du ändå lär dig lite Python-kod.


Hur man drar kort ur en kortlek och simulerar med ett Pythonprogram

Uppgift
Fyrtal
  1. Gå igenom koden och läs kommentarerna. Hur fungerar programmet?
  2. Hur hanterar programmet att det är beroende händelser (drag utan återläggning)?
  3. Kan du modifiera programmet till att undersöka sannolikheten för triss?
  4. Kan du modifiera programmet till att undersöka sannolikheten för stege?

Python-koden

from random import shuffle

kortlek = []

#Skapar kortleken
for i in range(1,14):
    for n in range(4):
        kortlek.append(i)

#Räknare för antalet fyrtal
fyrtal = 0
antalSimuleringar = 100000

#Simuleringen
for i in range(antalSimuleringar):
    #Blandar korleken
    shuffle(kortlek)

    hand = []
    #Väljer ut en hand på 5 kort
    for n in range(5):
        hand.append(kortlek[n])
    #Sorterar handen i storleksordning
    hand.sort()
    #Kontrollerar om vi har fyrtal
    #Det räcker att kontrollera likhet hand[0] == hand[3] eller hand[1] == hand[4]
    #Ex. [2, 2, 2, 2, 8] och [3, 7, 7, 7, 7]
    if hand[0] == hand[3] or hand[1] == hand[4]:
        fyrtal = fyrtal + 1

print("Sannolikheten att bland de fem första korten ha ett fyrtal är",fyrtal/antalSimuleringar)

Uppgiften är inspirerad av Malmö stads Matematisk programmering i Python