python兩種計算圓周率的方法

方法一:使用圓周率的近似計算公式



python兩種計算圓周率的方法


python兩種計算圓周率的方法

<code>pi = 0
n = 100
for k in range(n):
pi = pi + 1/pow(16,k)*(4/(8*k+1) - 2/(8*k+4) - 1/(8*k + 5) - 1/(8*k + 6))
print("圓周率的值是:{}".format(pi))/<code>

方法二:蒙特卡洛算法求圓周率


構造一個單位正方形和一個單位圓的1/4,往整個區域內隨機投入點,根據點到原點的距離判斷點是落在1/4的圓內還是在圓外,從而根據落在兩個不同區域的點的數目,求出兩個區域的比值。如此一來,就可以求出1/4單位圓的面積,從而求出圓周率π。



python兩種計算圓周率的方法


python兩種計算圓周率的方法


<code>import  random as r
import time as t
darets = 1000*1000 #d隨機散點的數量
hits = 0.0
start = t.perf_counter()
for i in range(1,darets + 1):
x,y = r.random(),r.random() # 每次隨機撒一個點
dist = pow(x**2 + y**2,0.5) #點(x,y)到圓心的距離
if dist <= 1.0:
hits = hits +1
pi = 4*(hits/darets)
print("圓周率的值是:{}".format(pi))
end = t.perf_counter()
print("運行時間是:{}s".format(end - start))/<code>


分享到:


相關文章: