【基础入门题】2021.12.01
根据 Pi/4 = 1-1/3+1/5-1/7...,编制计算Pi近似值的函数。
编程语言:包括但不限于Python
题目来源:派森特给站每日刷题频道
————————————————
方法一:循环
def Pi(n): res = 0 for i in range(1,n+1): res += 1/(2*i-1)*(-1)**(i+1) return res*4 print(Pi(1000)) print(Pi(10000)) print(Pi(100000)) print(Pi(1000000)) print(Pi(10000000)) print(Pi(100000000)) ''' 3.140592653839794 3.1414926535900345 3.1415826535897198 3.1415916535897743 3.1415925535897915 3.141592643589326 '''
方法二:推导式
Pi = lambda n:4*sum(1/(2*i-1)*(-1)**(i+1) for i in range(1,n+1)) print(Pi(1000)) print(Pi(10000)) print(Pi(100000)) print(Pi(1000000)) print(Pi(10000000)) print(Pi(100000000)) ''' 3.140592653839794 3.1414926535900345 3.1415826535897198 3.1415916535897743 3.1415925535897915 3.141592643589326 '''
1000万次计算到6位有效数字,大约耗时8秒;
1亿次计算到7位有效数字,大约耗时80秒左右;
推导式耗时比循环用时稍多。