first = a # first item
last = a * q^(m - 1) # last item
total = a * (q^m - 1) / (q - 1) # sum
解这些方程我们可以得到
a = first
q = (total - first) / (total - last)
m = log(last / a) / log(q)
如果要获取n项 number,请注意n == m + 1 编码:
import math
...
def Solve(first, last, total):
a = first
q = (total - first) / (total - last)
n = math.log(last / a) / math.log(q) + 1
return (a, q, n);
3条答案
按热度按时间ewm0tg9j1#
你有足够的信息来解决它:
给定序列
a
和最后一个元素的和,您可以使用上面的等式来求出r
的值。插入给定示例的值:然后,使用
sum of series = a*((r^n)-1)/(r-1)
:如果
n
不是整数,您可以近似n
并重新计算r
。pvcm50d12#
我们必须重建几何级数,即得到
a, q, m
(这里^
表示 * 自乘 *):如果我们知道
first, last, total
:解这些方程我们可以得到
如果要获取
n
项 number,请注意n == m + 1
编码:
Fiddle
如果您将数据(
1
,15
,50
)由于
n
不是整数,您可能需要调整;当total
可以变化时,设last == 15
是精确的。在这种情况下,q = (last / first) ^ (1 / (n - 1))
和total = first * (q ^ n - 1) / (q - 1)
mfpqipee3#
您必须解出
r
和n
的以下两个方程式:和
您可以通过以下方式消除
n
然后解出
r
。然后n
接着是log(a) / log(r) + 1
。在您的情况下,
r = 7 / 5 = 1.4
和n = 9.048...
将
n
四舍五入为9
是有意义的,但是r^8 = 15
(r ~ 1.40285
)和r = 1.4
并不完全兼容。