【基础入门题035】计算Pi值(一)

简介: 【基础入门题035】计算Pi值(一)

【基础入门题】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秒左右;

推导式耗时比循环用时稍多。

目录
相关文章
|
7月前
Math.atan2求角度解析
`Math.tan(x/y)` 求得是与y轴的夹角,而 `Math.atan2(y, x)` 求得是与x轴的夹角(范围:\(-\pi\) 到 \(\pi\)),顺时针为负,逆时针为正。`Math.atan2` 函数注意点:y在前,x在后。它能正确处理各象限的角度,例如 `Math.atan2(1, 1)` 返回 \(\frac{\pi}{4}\),而 `Math.atan2(-1, -1)` 返回 \(-\frac{3\pi}{4}\)。
75 0
Math.atan2求角度解析
|
8月前
17.求圆周率PI: PI/4 = 1- 1/3 + 1/5 -1/7 +.....
17.求圆周率PI: PI/4 = 1- 1/3 + 1/5 -1/7 +.....
48 0
|
Java
Java习题之实现平方根(sqrt)函数
Java习题之实现平方根(sqrt)函数
305 0
|
Python
【基础入门题036】计算Pi值(二)
【基础入门题036】计算Pi值(二)
104 0
|
Python
【基础入门题037】计算Pi值(三)
【基础入门题037】计算Pi值(三)
88 0
|
Python
【基础入门题047】随机整数列表
【基础入门题047】随机整数列表
59 0
|
Python
【基础入门题004】转换百分制分数
【基础入门题004】转换百分制分数
89 0
|
机器学习/深度学习
成绩统计 java_Math.round函数的使用(取百分数)
成绩统计 java_Math.round函数的使用(取百分数)
136 0
|
Java
Java经典编程习题100例:第9例:计算圆周率
Java经典编程习题100例:第9例:计算圆周率
168 0
|
Java
Java中sin、log、tan等复杂数学运算怎么搞
Java中sin、log、tan等复杂数学运算怎么搞
209 0