如何用Python编写函数计算1+1/2!+1/3!+…+1/n!的算术序列和
实现方案
版本1:复用现有阶乘函数
直接遍历1到n的所有整数,逐次计算每个数的阶乘的倒数并累加即可,代码如下:
# 你已实现的阶乘函数 def factorial(n): if n == 1: return n return n * factorial(n-1) def calculate_series_sum(n): sum_result = 0 for num in range(1, n+1): sum_result += 1 / factorial(num) return sum_result
版本2:优化性能(推荐)
上述实现每次计算阶乘都要递归调用,会产生大量重复计算,当n值较大时效率很低。可以边计算阶乘边累加,把时间复杂度从O(n²)降到O(n):
def calculate_series_sum(n): sum_result = 0 current_fact = 1 for num in range(1, n+1): current_fact *= num sum_result += 1 / current_fact return sum_result
测试示例
print(calculate_series_sum(4)) # 输出结果为 1.7083333333333333,对应 1 + 1/2! + 1/3! + 1/4! = 41/24 ≈ 1.7083
补充说明:这个序列是自然常数e的泰勒展开部分项,当n趋近于无穷大时,求和结果会无限接近e - 1 ≈ 1.71828。
内容的提问来源于stack exchange,提问作者owonamer
相关产品推荐
相关产品推荐

