圆周率的估算有多种方案:
方案一:无穷级数4/1 - 4/3 + 4/5 - 4/7 + ……的和是圆周率π,这一无穷级数前n项的和即可估算圆周率值。
方案二:利用求单位正方形与内接圆面积的比例关系来求的π的近似值。单位圆的1/4面积是一个扇形,它是边长为1单位正方形的一部分。如果能求出 扇形面积s1在正方形面积s中占的比例k=s1/s,它的值也等于π/4,从而得到π的值。
方案三:BBP公式
要求:请选择上述一种方案估算圆周率:
(1)求出的圆周率π与math库中的常数π误差小于10-6的时候停止计算;
(2)输出估算的圆周率π值。
实验运行:
实验代码:
# 使用无穷级数这个公式计算π值,输入一个小数作为阈值
# 当最后一项的绝对值小于给定阈值时停止计算并输出得到的π值def leibniz_of_pi(error):"""接收用户输入的浮点数阈值为参数,返回圆周率值"""a = 1b = 1sum = 0while 1 / b > error:if a % 2 != 0:sum += 1 / belse:sum -= 1 / ba += 1b += 2pi = sum * 4return piif __name__ == '__main__':threshold = float(input())print("{:.8f}".format(leibniz_of_pi(threshold))) # 保留小数点后八位