如何估算圓周率

2021-10-07 17:27:01 字數 587 閱讀 9765

面試某公司的時候,被問到這樣乙個問題,感覺很有趣。

如何估算圓周率π的值?

思路:通過蒙特卡洛演算法,想象乙個正方形內嵌了乙個1/4圓,

設想扔出的飛鏢,根據每次落在圓內的飛鏢的概率值佔比來估算。

使用cnt變數代表扔出的飛鏢次數,actual變數代表落在圓內的次數,

則actual/cnt表示1/4圓的面積,進而可以換算出π

**如下:

import random

def solution():

r = 2

n = 1000000

actual = 0

cnt = 0

for i in range(n):

x = random.uniform(0,r)

y = random.uniform(0,r)

if x * x + y * y <= r * r:

actual += 1

cnt += 1

return actual * 1.0 / cnt * 4

print('pai={}'.format(solution()))

7 15 計算圓周率

7 15 計算圓周率 15 分 根據下面關係式,求圓周率的值,直到最後一項的值小於給定閾值。2 1 1 3 2 3 5 3 3 5 7 n 3 5 7 2 n 1 輸入格式 輸入在一行中給出小於1的閾值。輸出格式 在一行中輸出滿足閾值條件的近似圓周率,輸出到小數點後6位。輸入樣例 0.01 輸出樣例...

7 15 計算圓周率

學到翁愷老師 c語言程式設計 第八周了,來pta做點習題練習 題目是 用圓周率的關係式,求圓周率的值,直到最後一項的值小於給定閾值。2 1 3 1 3 5 2 3 5 7 3 3 5 7 2n 1 n 輸入格式 輸入在一行中給出小於1的閾值。輸出格式 在一行中輸出滿足閾值條件的近似圓周率,輸出到小數...

《計算圓周率》python

題目 歷史上有許多計算圓周率pai的公式,其中,格雷戈里和萊布尼茨發現了下面的公式 pai 4 1 1 3 1 5 1 7 這個公式簡單而優美,但美中不足,它收斂的太慢了。如果我們四捨五入保留它的兩位小數,那麼 累積1項是 4.00 累積2項是 2.67 累積3項是 3.47 請你寫出它累積100項...