Vedi la discussione
import random
N=5000 # numero lanci
R=1/8 # raggio della moneta
def controllo(x,y,R):
if(abs(x) >= 1/2-R) or (abs(y) >= 1/2-R):
return 1
else:
return 0
n=0
for lanci in range(0,N):
x=random.uniform(-1/2,+1/2)
y=random.uniform(-1/2,+1/2)
n += controllo(x,y,R)
P=4*R-4*R**2
p=n/N
print("R=%.4f, N=%d, n=%d, p=%.4f, P=%.4f" %(R,N,n,p,P))
import matplotlib.pyplot as plt
import random
N=5000 # numero lanci
R=1/8 # raggio della moneta
def controllo(x,y):
if(abs(x) < 1/2-R) and (abs(y) < 1/2-R):
return 1
else:
return 0
n=0 # frequenza assoluta
xp=[]
yp=[]
xP=[]
yP=[]
for lanci in range(N):
x=random.uniform(-1/2,+1/2)
y=ra ndom.uniform(-1/2,+1/2)
if controllo(x,y):
n += 1
xp.append(x) # dentro
yp.append(y)
else:
xP.append(x) # sul bordo
yP.append(y)
P=4*R-4*R**2
p=n/N
print("R=%.4f, N=%d, n=%d, p=%.4f, P=%.4f" %(R,N,n,p,P))
plt.axis("equal")
plt.grid(which="major")
plt.scatter(xp, yp, color="green", marker ="." ) # dentro
plt.scatter(xP, yP, color="red" , marker ="." ) # sul bordo
plt.title("Moneta di Buffon, R = %.3f" %R)
plt.show()