📌  相关文章
📜  几何序列和级数(1)

📅  最后修改于: 2023-12-03 14:50:09.905000             🧑  作者: Mango

几何序列和级数

什么是几何序列和几何级数

几何序列是由一个初始项(a1)和一个公比(r)组成的数列,每一项都是前一项乘以公比得到的。几何序列可表示为:

a1, a1 * r, a1 * r2, a1 * r3, ...

几何级数是无限几何序列的总和。如果 |r| < 1,则几何级数收敛于

a1 / (1 - r)

如果 |r| >= 1,则几何级数发散。

如何实现几何序列和几何级数

在计算几何序列时,需要提供初始项和公比。可以通过循环来计算序列中每一项,也可以使用递归函数来计算序列的第 n 项。

# 循环方式计算几何序列
def geometric_sequence(a, r, n):
    sequence = [a]
    for i in range(n-1):
        sequence.append(sequence[-1] * r)
    return sequence

# 递归方式计算几何序列
def geometric_sequence_recursive(a, r, n):
    if n == 1:
        return [a]
    else:
        return geometric_sequence_recursive(a, r, n-1) + [a * pow(r, n-1)]

# 计算几何级数
def geometric_series(a, r):
    if abs(r) < 1:
        return a / (1 - r)
    else:
        return None

在上述实现中,使用了两种方式计算几何序列:循环和递归。循环的方式比递归更直观,但在计算大量数据时可能更加耗时。递归方式则比较简洁,但容易出现栈溢出的错误。

计算几何级数时,需要注意公比的取值,否则可能会得到无效结果或错误的结果。

实例
# 计算前10项的几何序列
print(geometric_sequence(2, 3, 10))  # [2, 6, 18, 54, 162, 486, 1458, 4374, 13122, 39366]

# 计算前10项的几何序列(递归方式)
print(geometric_sequence_recursive(2, 3, 10))  # [2, 6, 18, 54, 162, 486, 1458, 4374, 13122, 39366]

# 计算几何级数(收敛)
print(geometric_series(2, 0.5))  # 4.0

# 计算几何级数(发散)
print(geometric_series(2, 2))  # None

以上程序输出:

[2, 6, 18, 54, 162, 486, 1458, 4374, 13122, 39366]
[2, 6, 18, 54, 162, 486, 1458, 4374, 13122, 39366]
4.0
None