級數法求圓周率
阿新 • • 發佈:2021-10-11
題目
不言而喻,圓周率很重要。
不僅僅是在數學理論上,即便在千年前的古代,工程上的需求,也迫切需要我們知道圓周率的儘量精確的數值。
求圓周率,有很多種方法,級數法就是簡便易行的方法之一。
很多大牛已經把級數公式寫好,並證明清楚,我們只要按公式求值就好了。
暫舉幾例:
請程式設計求 \(\pi\)
分析與提示
對每個公式單獨寫一個程式有點浪費程式碼,能不能做一個類似級數框架的東東,把這個方法的共性表達出來呢?
這些演算法,無外乎是: 初始值 + 若干的小項,求和,最後再處理一下,得出 \(\pi\) 的值。
示例解法
點選檢視程式碼
import math a1 = 0 def b1(n): return 1/(n*n) def c1(x): return math.sqrt(x*6) a2 = 0 def b2(n): return (-1)**(n+1)/(2*n-1) def c2(x): return 4*x a3 = 3 def b3(n): return (-1)**(n+1)*4/(2*n*(2*n+1)*(2*n+2)) def c3(x): return x # a: 初始值 # b: 通項公式(函式) # c: 後處理(函式) # n: 累加項數 def f(a,b,c,n): z = a for i in range(n): z += b(i+1) return c(z) #### print(f(a1,b1,c1,10000)) print(f(a2,b2,c2,10000)) print(f(a3,b3,c3,100))
需要更多的題目和題解?
其它的題目懶得貼了,自己下載吧:
《2021年新版-程式設計基礎訓練32題-附提示和答案》
連結: https://pan.baidu.com/s/1ZubWEUab1aCxEVWjBaRCDQ
提取碼: aeha
程式設計是靠實踐的,光看書很難提高啊。。。