Hazırlayan: Eric Roberts
Çevirenler: Serhat Arslan, Ceren Kocaoğullar
Pi (π) gerçek güzelliğin matematiksel halidir. Birçok denklemde karşımıza çıkar. Özellikle de dairesel hesaplar yaparken, çan eğrisi hesaplarken ve son olarak da, inanılmaz bir şekilde, Euler Özdeşliği'nde.
Peki π değerinin 3.14159265359... olduğunu nereden bliyoruz? Pi sayısını hesaplamanın birçok yöntemi var. Bu egzersiz ile pi sayısını dart tahtasını kullanarak hesaplamayı öğreneceğiz.
Bu arkadaşın adı da Pi. Ama bu problem onunla alakasız (ismi dışında).
Aşağıdaki (sol) sarı daireye bir dart oku attığınızı hayal edin. Eğer rastgele bir şekilde birçok ok atarsanız, bazıları sarı bölgenin içine bazıları da dışarıdaki gri alana isabet edecektir. Eğer hem içerideki daireye hem de dışarıdaki kareye denk gelen okları sayacak olursanız, bu toplamların oranı iki şeklin alanları oranına eşit olmalıdır.
Dairenin alanı π ve karenin alanı 4 olduğuna göre, dairenin içine isabet eden okların oranı π / 4 civarında olmalıdır.
"""File: find_pi.py--------------------Find the value of pi by throwing random darts at a unit circle inscribed ina square. The fraction that land in the circle should equal pi / 4."""# Needed to generate random numbersimport random# Needed for sqrtimport math# The number of darts to throwNUM_DARTS = 20000000def main():print("This program takes a bit of time to run - thanks for your patience!")num_in_circle = 0for i in range(NUM_DARTS):"""get a random x and y coordinate between (-1, -1) and (1, 1)(imagine the center of the circle is (0, 0))"""x = random.uniform(-1, 1)y = random.uniform(-1, 1)"""test if the dart landed in the circle by calculating the lengthof the hypotenuse of the triangle created at this point.The radius of the circle is 1, so if the distance is more than 1it is outside the circle."""dist = math.sqrt(x * x + y * y)if dist <= 1:num_in_circle += 1# Approximate pifraction = num_in_circle / NUM_DARTSpi = fraction * 4print(pi)if __name__ == '__main__':main()