下面我的代码的输出不是 pi。怎么解决?
import math
a_one = (23 + 4 * math.sqrt(34))
a = 1 / 2 * a_one
b_one = (19 * math.sqrt(2) + 7 * math.sqrt(17))
b = 1 / 2 * b_one
c = (429 + 304 * math.sqrt(2))
d_one = (627 + 442 * math.sqrt(2))
d = 1 / 2 * d_one
u = (a + (math.sqrt(a**2 - 1))**2) * (b + (math.sqrt(b**2 - 1))**2) * (c + (math.sqrt(c**2 - 1))**2) * (d + (math.sqrt(d**2 - 1)))
pi = (math.log((2 * u)**6 + 24) / math.sqrt(3502))
print(pi)
输出=3.4829888487915346
你的
u
有一些错误。
u = (a + (math.sqrt(a**2 - 1))**2) * (b + (math.sqrt(b**2 - 1))**2) * (c + (math.sqrt(c**2 - 1))**2) * (d + (math.sqrt(d**2 - 1)))
应该是
u = ((a + math.sqrt(a**2 - 1))**2) * ((b + (math.sqrt(b**2 - 1)))**2) * (c + (math.sqrt(c**2 - 1))) * (d + (math.sqrt(d**2 - 1)))
问题是您对
a
和 b
方程的平方根而不是括号之间的整个部分进行了平方。另外,你在 c
处有一个正方形,它不应该在那里。
我测试了它并使用新的
u
运行它给出了 3.141592653589793
作为答案。
您计算的 u 值需要通过正确使用大括号来固定
这是正确的版本:
u = ((a + math.sqrt(a**2 - 1))**2) * ((b + (math.sqrt(b**2 - 1)))**2) * (c + (math.sqrt(c**2 - 1))) * (d + (math.sqrt(d**2 - 1)))