复利的力量
The Power of Compounding
假设一个人 每月 将语料库存入银行。银行每个月付给他利息。
现在对于给定的 Investment Corpus P、利率 R 和 Tenure 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))
我知道这不是最好的方法。我尝试了几个小时来推导这个问题的一般公式,但失败了。所以,我不想知道这个问题是否存在任何 Formula 或更好的 Algorithm.
我们可以找到以下问题的封闭形式的解决方案(与您所说的略有不同,但解决方案将以任何一种方式工作):
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
...
这个和是一个几何级数,你可以通过谷歌搜索一下,简化为:
这可以在 O(1) 中解决,使用 O(1) pow
函数来计算幂。
我找到了答案。
假设函数 A(t)
是 t
个月到期后的总金额,P
是语料库,r
是 (Monthly Rate of Interest + 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
r = 1 + R = 1.003
A = A(5) = (52.5 * 1.003) * (1.003^5 - 1) / 0.003 = 264.87197128801836 ~ 265
感谢您 GuyGreer 宝贵的时间和精力。我的想法是仅从您的回答中考虑 r=R+1
来解决问题,否则我花了几个小时将其分解为简单的方程式。
假设一个人 每月 将语料库存入银行。银行每个月付给他利息。 现在对于给定的 Investment Corpus P、利率 R 和 Tenure 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))
我知道这不是最好的方法。我尝试了几个小时来推导这个问题的一般公式,但失败了。所以,我不想知道这个问题是否存在任何 Formula 或更好的 Algorithm.
我们可以找到以下问题的封闭形式的解决方案(与您所说的略有不同,但解决方案将以任何一种方式工作):
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
...
这个和是一个几何级数,你可以通过谷歌搜索一下,简化为:
这可以在 O(1) 中解决,使用 O(1) pow
函数来计算幂。
我找到了答案。
假设函数 A(t)
是 t
个月到期后的总金额,P
是语料库,r
是 (Monthly Rate of Interest + 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
r = 1 + R = 1.003
A = A(5) = (52.5 * 1.003) * (1.003^5 - 1) / 0.003 = 264.87197128801836 ~ 265
感谢您 GuyGreer 宝贵的时间和精力。我的想法是仅从您的回答中考虑 r=R+1
来解决问题,否则我花了几个小时将其分解为简单的方程式。