📅  最后修改于: 2023-12-03 14:53:23.813000             🧑  作者: Mango
本文将会介绍如果给出了第 Mth 和 Nth 项,如何通过公比 r 查找 GP 的第 Pth 项。
首先需要了解什么是等比数列(geometric progression, GP)。对于一个等比数列 {a1, a2, a3, ..., an},公比为 r,那么 an = a1 * r ^ (n-1)。根据这个公式就可以计算出任意一项的值。
首先我们需要计算出公比 r:
r = Nth / Mth
然后通过公比 r 和第 Mth 项计算出第 Pth 项的值:
Pth = Mth * r ^ (P-1)
def find_gp_item(mth, nth, p, tol=1e-9):
"""
Find the Pth item in the geometric progression given the Mth and Nth items.
Args:
mth (float/int): The value of the Mth item.
nth (float/int): The value of the Nth item.
p (int): The index of the item to find.
tol (float, optional): The tolerance for comparing floating point numbers. Defaults to 1e-9.
Returns:
float: The value of the Pth item.
"""
r = nth / mth
return mth * pow(r, p-1)
假设有等比数列 {2, 6, 18, ...},给定第 2 和第 3 项,需要求第 6 项,那么可以调用函数:
>>> find_gp_item(6, 18, 6)
162.0
返回的结果为 162.0,即代表等比数列 {2, 6, 18, ..., 162.0}。