Vedi la discussione teorica e la codifica per due dadi
Modifica le 2 righe di codice iniziali
...
DADI = [d1+d2+d3 for d1 in DADO for d2 in DADO for d3 in DADO] # Lancio di 3 dadi
...
P = [sp.Rational(count, 216) for count in COUNT.values()] # Probabilità = Frequenze assolute
...
Il resto del codice rimane lo stesso
import collections # Counter()
import matplotlib.pyplot as plt
import sympy as sp # Rational(), sqrt()
DADO = list(range(1, 7))
DADI = [d1+d2+d3 for d1 in DADO for d2 in DADO for d3 in DADO]
COUNT = collections.Counter(DADI);
X = COUNT.keys()
P = [sp.Rational(count, 216) for count in COUNT.values()]
plt.bar(X, P)
plt.grid()
plt.show()
print(" x | p(x)")
print("----|------")
for x, p in zip(X, P):
print(" %2i | %s" %(x, p))
#-------------------------------------------------------------------------------
media = 0
media_quadrati = 0
for p, x in zip(P, X):
media += p*x
media_quadrati += p*x**2
varianza_1 = media_quadrati-media**2
print("Media = %5s %10.6f" %(media , media ))
print("Media dei quadrati = %5s %10.6f" %(media_quadrati, media_quadrati))
print("Varianza (1) = %5s %10.6f" %(varianza_1 , varianza_1 ))
#-------------------------------------------------------------------------------
scarto_medio_assoluto = 0
devianza = 0
varianza_2 = 0
for p, x in zip(P, X):
scarto_medio_assoluto += p*abs(media-x)
devianza += (media-x)**2
varianza_2 += p*(media-x)**2
print("Scarto medio assoluto = %5s %10.6f" %(scarto_medio_assoluto, scarto_medio_assoluto))
print("Devianza = %5s %10.6f" %(devianza , devianza ))
print("Varianza (2) = %5s %10.6f" %(varianza_2 , varianza_2 ))
#-------------------------------------------------------------------------------
deviazione_standard = sp.sqrt(varianza_2)
deviazione_standard_relativa = deviazione_standard/abs(media)
print("Deviazione standard = %11s %10.6f" %(deviazione_standard , deviazione_standard ))
print("Deviazione standard rel. = %11s %10.6f" %(deviazione_standard_relativa, deviazione_standard_relativa))
Per ottenere
x | p(x)
----|------
3 | 1/216
4 | 1/72
5 | 1/36
6 | 5/108
7 | 5/72
8 | 7/72
9 | 25/216
10 | 1/8
11 | 1/8
12 | 25/216
13 | 7/72
14 | 5/72
15 | 5/108
16 | 1/36
17 | 1/72
18 | 1/216
Media = 21/2 10.500000
Media dei quadrati = 119 119.000000
Varianza (1) = 35/4 8.750000
Scarto medio assoluto = 29/12 2.416667
Devianza = 340 340.000000
Varianza (2) = 35/4 8.750000
Deviazione standard = sqrt(35)/2 2.958040
Deviazione standard rel. = sqrt(35)/21 0.281718
Riepilogo