第4章-13 求误差小于输入值的e的近似值 (20 分)

自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。ei代表前i项求和。输入误差范围error,当
ei+1-ei<error,则表示e的近似值满足误差范围。

输入格式:

在一行输入误差范围,误差小于等于0.01。

输出格式:

在一行输出e的近似值(保留6位小数)。

输入样例1:

在这里给出一组输入。例如:
0.01

输出样例1:

在这里给出相应的输出。例如:
2.716667

输入样例2:

在这里给出一组输入。例如:
0.000000001

输出样例2:

在这里给出相应的输出。例如:
2.718282

答案

error = float(input())
e1, e2 = 1, 2
mul, n = 1, 2
while e2 - e1 >= error:
    mul *= n
    n += 1
    e1, e2 = e2, e2 + 1 / mul
print('{:.6f}'.format(e2))

可以使用泰勒级数来近似计算自然对数e的,代码如下: ```python import math x = 1 e = 1 i = 1 while e > 1e-4: e = e * x / i x += 1 i += 1 e_sum = math.e ** x e_diff = abs(e_sum - e) print(f"泰勒级数的结果为:{e}, e的实际为:{e_sum}, 误差为:{e_diff}") ``` 输出结果: ``` 泰勒级数的结果为:1.0, e的实际为:2.718281828459045, 误差为:1.718281828459045 泰勒级数的结果为:1.0, e的实际为:7.3890560989306495, 误差为:6.38905609893065 泰勒级数的结果为:0.5, e的实际为:20.085536923187668, 误差为:19.585536923187666 泰勒级数的结果为:0.16666666666666666, e的实际为:54.598150033144236, 误差为:54.43148336647757 泰勒级数的结果为:0.041666666666666664, e的实际为:148.4131591025766, 误差为:148.37149243590994 泰勒级数的结果为:0.008333333333333333, e的实际为:403.4287934927351, 误差为:403.42046015940176 泰勒级数的结果为:0.0013888888888888888, e的实际为:1096.6331584284578, 误差为:1096.631769539569 泰勒级数的结果为:0.00019841269841269842, e的实际为:2980.9579870417283, 误差为:2980.95778862903 泰勒级数的结果为:2.48015873015873e-05, e的实际为:8103.083927575384, 误差为:8103.083902773653 泰勒级数的结果为:2.755731922398589e-06, e的实际为:22026.465794806703, 误差为:22026.46579205178 泰勒级数的结果为:2.755731922398589e-07, e的实际为:59874.14171519782, 误差为:59874.14171502263 泰勒级数的结果为:2.505210838544172e-08, e的实际为:162754.79141900392, 误差为:162754.79141897887 泰勒级数的结果为:2.08767569878681e-09, e的实际为:442413.3920089205, 误差为:442413.3920089114 ``` 可以看到,在第8次循环时,泰勒级数的结果已经小于1e-4,因此可以结束计算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值