Dünkü Pi Günü için Matt Harper, 120 kez iki taraflı 120 zar (see the video here) yuvarlayarak Pi'ye yaklaştığı bir video yayınladı. Temel olarak, her bir rastgele sayı çifti için, onların eş misal olup olmadığını kontrol etmelisiniz. Daha sonra,Programım neden pi'ye yakın değil?
formülü hesaplanır.Onun sonucu oldukça yakın olan 3.05 hakkındaydı.
Daha fazla rulo yapıldığında veya rastgele tam sayı aralığı arttığında ne olacağını görmek istedim. İlginç bir şekilde, programım neredeyse her zaman 3,05 veya yakın bir sonuç verdi, ne kadar iterasyonları veya rastgele aralığı ayarladığım önemli değil.
İşte programım. Python 3.6'da (Win64) koştum. Rasgele sayı üreteci Python'un kullandığı çok iyi olmalı, belki de programımda bir hata yaptım.
import random
from math import gcd, sqrt
def pi(cp, cf):
return sqrt(6/(cf/cp)) # EDIT: Second error - switched numerator/denominator...
coprime = 0
cofactor = 0
iterations = 1000000
for i in range(iterations):
x = random.randint(0,1000000)
y = random.randint(0,1000000)
if gcd(x,y) > 1:
cofactor += 1
else:
coprime += 1
print(pi(coprime, cofactor))
Dün videoyu gördüm ve bunu kendim denemeyi bile düşünmedim. Fikir için teşekkürler! Neden doğruluk elde edemediğine göre, idk. En iyi tahminim jeneratörün bir sınırlaması olurdu, ama Python'un jeneratörü hakkında çok az şey biliyorum. – Carcigenicate