Esame di Stato 2007 Suppletiva – Quesito 6
Si scelga a caso un punto P all’interno di un cerchio.
Si determini la probabilità che esso sia più vicino al centro che alla circonferenza del cerchio.
Calcolo probabilistico (metodo Monte Carlo)
1
Per semplificare: r=1
import random
QUADRATO=10000 # punti nel QUADRATO
CERCHIO=0 # punti nel CERCHIO grande , r=1
cerchio=0 # punti nel cerchio piccolo, r=1/2
for i in range(QUADRATO):
x=random.uniform(-1,+1)
y=random.uniform(-1,+1)
d2=x**2+y**2 # distanza**2
if(d2 <= 1): # nel CERCHIO grande : d2 <= 1
CERCHIO+=1
if(d2 <= 0.25): # nel cerchio piccolo: d2 <= 1/4
cerchio+=1
f=cerchio/CERCHIO
print("QUADRATO =", QUADRATO)
print("CERCHIO =", CERCHIO)
print("cerchio =", cerchio)
print("Frequenza =", f)
2
Per semplificare: punti nel 1° quadrante
import random
QUADRATO=10000 # punti nel QUADRATO
CERCHIO=0 # punti nel CERCHIO grande , r=1
cerchio=0 # punti nel cerchio piccolo, r=1/2
for i in range(QUADRATO):
x=random.random()
y=random.random()
d2=x**2+y**2 # distanza**2
if(d2 <= 1): # nel CERCHIO grande : d2 <= 1
CERCHIO+=1
if(d2 <= 0.25): # nel cerchio piccolo: d2 <= 1/4
cerchio+=1
f=cerchio/CERCHIO
print("QUADRATO =", QUADRATO)
print("CERCHIO =", CERCHIO)
print("cerchio =", cerchio)
print("Frequenza =", f)

import matplotlib.pyplot as plt
import random
QUADRATO=10000
CERCHIO=0
cerchio=0
xQ=[] # punti nel QUADRATO
yQ=[]
xC=[] # punti nel CERCHIO grande
yC=[]
xc=[] # punti nel cerchio piccolo
yc=[]
for i in range(QUADRATO):
x=random.uniform(-1,+1)
y=random.uniform(-1,+1)
xQ.append(x)
yQ.append(y)
r=x**2+y**2
if(r <= 1):
CERCHIO+=1
xC.append(x)
yC.append(y)
if(r <= 0.25):
cerchio+=1
xc.append(x)
yc.append(y)
f=cerchio/CERCHIO
print("QUADRATO =", QUADRATO)
print("CERCHIO =", CERCHIO )
print("cerchio =", cerchio )
print("Frequenza =", f )
plt.axis("equal")
plt.scatter(xQ, yQ, color="gray" , marker =".")
plt.scatter(xC, yC, color="green", marker =".")
plt.scatter(xc, yc, color="red" , marker =".")
plt.title("Quesito: 2007 - 6")
plt.show()