Esame di Stato 2019 – Simulazione 28/2 – Quesito 3
Una scatola contiene 16 palline numerate da 1 a 16.
- Se ne estraggono 3, una alla volta, rimettendo ogni volta nella scatola la pallina estratta.
Qual è la probabilità che il primo numero estratto sia 10 e gli altri due minori di 10? - Se ne estraggono 5 contemporaneamente.
Qual è la probabilità che il più grande dei numeri estratti sia uguale a 13?
Una scatola contiene 16 palline numerate da 1 a 16.
Se ne estraggono 3, una alla volta, rimettendo ogni volta nella scatola la pallina estratta.
Qual è la probabilità che il primo numero estratto sia 10 e gli altri due minori di 10?
import random # choice()
SCATOLA=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
ESTRAZIONI=10000
freqAssoluta=0
for i in range(ESTRAZIONI):
p1=random.choice(SCATOLA)
p2=random.choice(SCATOLA)
p3=random.choice(SCATOLA)
if(p1 == 10) and (p2 < 10) and (p3 < 10):
freqAssoluta += 1
freqRelativa=freqAssoluta/ESTRAZIONI
percentuale =100*freqRelativa
print("Frequenza assoluta =", freqAssoluta )
print("Frequenza relativa =", freqRelativa )
print("Percentuale =", percentuale,"%")
Si può ottimizzare la fase di estrazione e controllo
import random
SCATOLA=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
def controllo():
p=random.choice(SCATOLA); if(p != 10): return 0
p=random.choice(SCATOLA); if(p >= 10): return 0
p=random.choice(SCATOLA); if(p >= 10): return 0
return 1
ESTRAZIONI=10000
freqAssoluta=0
for i in range(ESTRAZIONI):
freqAssoluta += controllo()
freqRelativa=freqAssoluta/ESTRAZIONI
percentuale =100*freqRelativa
print("Frequenza assoluta =", freqAssoluta )
print("Frequenza relativa =", freqRelativa )
print("Percentuale =", percentuale,"%")
Una scatola contiene 16 palline numerate da 1 a 16.
Se ne estraggono 5 contemporaneamente.
Qual è la probabilità che il più grande dei numeri estratti sia uguale a 13?
import random
SCATOLA=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]
ESTRAZIONI=1000
freqAssoluta=0
for i in range(ESTRAZIONI):
random.shuffle(SCATOLA)
p1=SCATOLA[0]
p2=SCATOLA[1]
p3=SCATOLA[2]
p4=SCATOLA[3]
p5=SCATOLA[4]
if(p1 <= 13) and (p2 <= 13) and (p3 <= 13) and (p4 <= 13) and (p5 <= 13):
if(p1 == 13) or (p2 == 13) or (p3 == 13) or (p4 == 13) or (p5 == 13):
freqAssoluta+=1
freqRelativa=freqAssoluta/ESTRAZIONI
percentuale =100*freqRelativa
print("Frequenza assoluta =", freqAssoluta )
print("Frequenza relativa =", freqRelativa )
print("Percentuale =", percentuale,"%")
Ottimizzare?
...
freqAssoluta=0
for i in range(ESTRAZIONI):
random.shuffle(SCATOLA)
c13=False # controllo se uguale a 13
c14=False # controllo se maggiore o uguale a 14
for i in range(5):
p=SCATOLA[i]
if(p == 13):
c13=True
elif(p > 13):
c14=True
if(c13 == True) and (c14 == False):
freqAssoluta += 1
...
ancora…
...
def controllo():
risp=0
for i in range(5):
p=SCATOLA[i]
if(p == 13):
risp=1
elif(p > 13):
return 0
return risp
freqAssoluta=0
for i in range(ESTRAZIONI):
random.shuffle(SCATOLA)
freqAssoluta += controllo()
...