复合的力量

时间:2016-07-20 18:36:28

标签: algorithm formula

假设一个人将一个语料库存入银行每月。银行每个月向他支付利息。 现在给出投资语料库利率R 任期T , 我想在任期结束后计算总金额

如果你google这个术语复合的力量,你可以找到数以千计的在线计算器来解决这个问题。

我们举一个例子(注意:它与复合兴趣的简单问题不同):

If P is 52.5, R is 3.6% Anually, T is 5 Months, Suppose Total Amount is A
Now, R will be 0.3% monthly (since bank pays him every month)

After First Month:  A = 52.5*(1 + 0.003) = 52.6575 [His Corpus with added Interest]

                      **Then he Deposit Corpus again**

After Second Month: A = (52.5 + 52.6575)*(1 + 0.003) = 105.4729725

After Third Month:  A = (52.5 + 105.4729725)*(1 + 0.003) = 158.4468914

After Forth Month:  A = (52.5 + 158.4468914)*(1 + 0.003) = 211.5797321

After Fifth Month:  A = (52.5 + 211.5797321)*(1 + 0.003) = 264.8719713 ~ 265

所以,答案将是265。

对问题的启示可能是这样的:(Python 2)

p=float(raw_input('Enter the Corpus: '))
r=(1+float(raw_input('Enter the Annual Rate: '))/1200)
t=input('Enter the Tenure: ')

a=p+0
m=1
while m<t:
    a=(a+p)*r
    m+=1

print 'Total Amount',int(round(a))

我知道这不是最好的方法。我试了几个小时来解决这个问题的一般公式,但都失败了。所以,我不知道这个问题是否存在任何公式或任何更好的算法

2 个答案:

答案 0 :(得分:2)

我们可以找到解决以下问题的封闭式解决方案(与您所说的略有不同,但解决方案无论哪种方式都有效):

  a(n+1) = a(n) * r + p
  a(0) = A

  a(1) = A*r + p

  a(2) = a(1)*r + p
  a(2) = (A*r + p)*r + p
  a(2) = A*r^2 + p*r + p

  a(3) = a(2)*r + p
  a(3) = (A*r^2 + p*r + p)*r + p
  a(3) = A*r^3 + p*r^2 + p*r + p
  ...

enter image description here

这个总和是一个几何系列,你可以通过谷歌搜索找到,简化为:

enter image description here

这可以使用O(1)pow函数在O(1)中求解,以计算幂。

答案 1 :(得分:0)

我找到了答案。

假设函数A(t)t个月成熟期后的总金额,P是语料库,r(Monthly Rate of Interest + 1)或{{ 1}}。

现在,

r=R+1

当我们考虑A(1)= P*r A(2)= (A(1) + P)*r = (P*r + P)*r = P*r^2 + P*r A(3)= (A(2) + P)*r = (P*r^2 + P*r)*r = P*r^3 + P*r^2 + P*r A(t)= P*r^t + P*r^(t-1) + ... + P*r^3 + P*r^2 + P*r = (P*r) * [P*r^(t-1) + P*r^(t-2) + ... + P*r^2 + P*r + 1] = (P*r) * (r^(t-1)-1) / (r - 1) [Formula of sum in G.P.] = (P*r) * (r^(t-1)-1) / R [Since r = R + 1] Or, only in terms of P, R, t: A(t) = P*(1 + R) * ((1 + R)^(t-1)-1) / R 时,这就是简单的几何级数

现在,举个例子, r=R+1 P=52.5 R=0.003

t=5

感谢您GuyGreer 宝贵的时间和精力。我有理由从你的答案中考虑r = 1 + R = 1.003 A = A(5) = (52.5 * 1.003) * (1.003^5 - 1) / 0.003 = 264.87197128801836 ~ 265 来解决问题,否则我花了一个小时把它分解成简单的等式。