Le sei facce del dado sono equiprobabili, è necessario un generatore di numeri interi con distribuzione uniforme in [1,6]
import random
LANCI=10
for i in range(LANCI):
esito=random.randint(1, 6)
print(i, esito)
Media
Calcolo della media
import random
LANCI=10
somma=0
for i in range(LANCI):
esito = random.randint(1, 6)
somma += esito
print(i, esito, somma)
print()
print("Media =", somma/LANCI)
Deviazione standard
Calcolo della deviazione standard
- per avere risultati significativi i lanci devono essere almeno 10000
- le uscite sono memorizzate in una lista
- per calcolare la varianza è necessario calcolare la somma dei quadrati degli scarti
- la deviazione standard è la radice quadrata…
import math
import random
LANCI =100000
USCITE=[]
for i in range(LANCI):
esito = random.randint(1,6)
USCITE.append(esito)
somma=0
for x in USCITE:
somma += x
media=somma/LANCI
print("Media =", media)
somma=0
for x in USCITE:
somma += (x-media)**2
varianza=somma/LANCI
print("Varianza =", varianza)
dev_std=math.sqrt(varianza)
print("Dev. std. =", dev_std)
Frequenze assolute
Conteggio dei lanci per ogni faccia.
Verifichiamo, sperimentalmente, se gli esiti da 1 a 6 hanno la stessa probabilità
...
# 1 2 3 4 5 6
CONTO=[0,0,0,0,0,0,0]
for x in USCITE
CONTO[x] += 1
for i in range(1,7):
print(i, CONTO[i])
Frequenze relative
Conteggio dei lanci per ogni faccia e percentuali corrispondenti
...
for i in range(1,7):
print("%d: %3d - %3.1f%%" %(i, CONTO[i], 100*CONTO[i]/LANCI))
matplotlib
import matplotlib.pyplot as plt
import random
LANCI=1000
DADO =range(7)
CONTO=[0,0,0,0,0,0,0]
for i in range(LANCI):
esito=random.randint(1,6)
CONTO[esito]+=1
plt.grid(which="major")
plt.bar(DADO, CONTO)
plt.title("Un dado")
plt.show()