python - Python 工作簿:练习 69 - 近似 pi
问题描述
我是 Python 的新手,目前正在编写 Ben Stephenson 的 Python Workbook。我坚持练习 69 并且我的 pi 值正在发散……有人可以帮忙吗?我的代码有任何错误吗?
我还在这里附上了练习题。练习题
#Exercise 69: Approximate pi
maxrun = 15
denominator1 = 2
denominator2 = 3
denominator3 = 4
fractionpos = (4/(denominator1*denominator2*denominator3))
denominatora = 4
denominatorb = 5
denominatorc = 6
fractionneg = -4/(denominatora*denominatorb*denominatorc)
pi = 3
count = 1
while maxrun != 0:
if count %2 != 0: #odd runs are positive
pi = pi+fractionpos
print('Approximation',count,'pi value is',pi)
count = count+1
denominator1 = denominator1+4
denominator2 = denominator2+4
denominator3 = denominator3+4
maxrun = maxrun-1
elif count %2 ==0: #even runs are negative
pi = pi+fractionneg
print('Approximation',count,'pi value',pi)
count = count+1
denominatora = denominator1+4
denominatorb = denominator2+4
denominatorc = denominator3+4
maxrun = maxrun-1
解决方案
这段代码有两个问题。
首先,当你做分数的负部分时,你应该在分母 a、b、c 上加 4 而不是 1、2、3。
第二,fractionpos
只fractionneg
计算一次。您需要在每次迭代时重新计算它们。
此外,如果您只在每个循环中添加两个,您可以摆脱分母a、b、c 并只使用 1、2、3 来表示两者。如果你想要更多的挑战,你可以用一个分母变量而不是三个
由于您正在学习 Python,而这对您来说是一个练习,我建议您不要只是复制下面的代码,而是自己进行更改。玩得开心!
if count %2 != 0: #odd runs are positive
pi = pi+(4/(denominator1*denominator2*denominator3))
print('Approximation',count,'pi value is',pi)
count = count+1
denominator1 = denominator1+4
denominator2 = denominator2+4
denominator3 = denominator3+4
maxrun = maxrun-1
elif count %2 ==0: #even runs are negative
pi = pi+-4/(denominatora*denominatorb*denominatorc)
print('Approximation',count,'pi value',pi)
count = count+1
denominatora = denominatora+4
denominatorb = denominatora+4
denominatorc = denominatora+4
maxrun = maxrun-1
推荐阅读
- mule - 使用命名空间定义数据类型
- python - 从以前的安装中导入 conda 环境
- google-cloud-platform - 谷歌计算引擎磁盘自动调整大小,无需重启
- angular - 单击 Angular 中的输入时更改样式
- pandas - Python pandas将不同版本的数字转换为一个
- curl - 使用 openssl1.1.1i 编译 curl 时出错
- java - 我有这样的每一个问题。有谁知道如何修理它?谢谢你
- sql - Oracle 11g 日期添加
- executable-jar - 错误:在运行 Maven 使用 spark-submit 构建的 jar 时无法加载类 org.first.spark.Test
- sql - 如何替换sql中的元素