📅  最后修改于: 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