gpt4 book ai didi

python - 如何生成用户定义的小数位 "e"的近似值

转载 作者:太空宇宙 更新时间:2023-11-04 04:30:27 26 4
gpt4 key购买 nike

我正在尝试编写一个 Python 程序,该程序将使用泰勒级数生成用户定义长度(例如 100 位小数)的 e 的近似值,并打印所有 100 位数字。但是,输出永远不会超过小数点后 15 位,这是 python 对 numpy.e 的默认精度。我该如何解决这个问题?下面是我使用的代码。

import math

precision = int(input("Number of decimal places = "))
e = 0
s = 1
i = 1
while s > (10**(-1*precision)):
e = e + s
s = 1/math.factorial(i) # e = 1 + 1/1! + 1/2! + 1/3! + ...
i = i + 1
print(e)

最佳答案

我认为您可以使用 sympy 和 mpmath。

首先从泰勒级数中 x=0 处的误差中计算出我们需要的项数,并在 1 处求值,

1/n! e^1 < 1e-100

取n=75就够了。虽然我们可以只使用 100,但这也应该足够好了。

在 sympy 中,我们在 0 处创建 e^x 的泰勒级数,然后在 1 处对其求值,

import sympy, mpmath

f = 0
for i in range(0, 100):
f += 1/sympy.factorial(i)

mpmath.mp.dps = 100

print(mpmath.mpf(f))

这给了我

的值(value)
2.718281828459045235360287471352662497757247093699959574966967627724076630353547594571382178525166427

关于python - 如何生成用户定义的小数位 "e"的近似值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52725111/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com