面試某公司的時候,被問到這樣乙個問題,感覺很有趣。
如何估算圓周率π的值?
思路:通過蒙特卡洛演算法,想象乙個正方形內嵌了乙個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項...