2016-07-20 14 views
0

Angenommen, eine Person legt einen Corpus an die Bank monatlich. Die Bank zahlt ihm jeden Monat Zinsen. Jetzt für gegebene Investitions Corpus P, Zinssatz R und Tenure T, Ich möchte die Gesamtbetrag nach dem Ende der Amtszeit berechnen.Die Kraft des Compoundierens

Wenn Sie google der Begriff Kraft der Compoundierung können Sie Tausende von Online-Rechner für dieses Problem finden.

Nehmen wir ein Beispiel nehmen (Hinweis: Es unterscheidet sich von dem einfachen Problem der Zinseszins):

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 

Also, die Antwort 265.

Ein implimentation für das Problem sein kann wie folgt: (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)) 

Ich weiß, das ist nicht der beste Weg. Ich habe Stunden versucht, die allgemeine Formel für dieses Problem herzuleiten, aber gescheitert. Also, ich möchte wissen, ob es Formel für dieses Problem gibt oder besser Algorithmus.

+0

Was ist falsch daran? Dieser Algorithmus sieht ziemlich einfach aus. Suchen Sie eine geschlossene Lösung für analytische Zwecke? – SirGuy

+0

Um ehrlich zu sein, suche ich nach einer Formel, die die Komplexität meines Algorithmus in der Reihenfolge von O (1) macht. –

+0

Was ist 'n'? Ich sehe es in Ihrer obigen Problemstellung nicht. – SirGuy

Antwort

0

Ich fand die Antwort.

Lassen Sie sagen, die Funktion A(t) der Gesamtbetrag nach Laufzeit von t Monate ist, P ist der Korpus ist r(Monthly Rate of Interest + 1) oder r=R+1. Jetzt

,

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 

Das ist die einfache geometrische Progression wenn wir r=R+1 betrachten.

Nun nehmen Beispiel gegeben, P=52.5R=0.003t=5

r = 1 + R = 1.003 
A = A(5) = (52.5 * 1.003) * (1.003^5 - 1)/0.003 = 264.87197128801836 ~ 265 

Danke GuyGreer für Ihre kostbare Zeit und Mühe.Ich habe die Idee, r=R+1 von Ihrer Antwort nur zu betrachten, die das Problem löst, andernfalls habe ich Stunde ausgegeben, um es in einfache Gleichung zu brechen.

2

Wir können eine geschlossene Lösung für folgendes Problem finden (sehr leicht unterschiedlich von dem, was Sie gesagt, aber die Lösung wird so oder so funktionieren):

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

Diese Summe ist ein geometrische Reihe, die Sie herausfinden können, durch ein bisschen googeln, vereinfacht sich zu:

enter image description here

Dies kann s in O (1) unter Verwendung einer O (1) pow Funktion zur Berechnung der Leistungen.

+0

Sie können auch http://www.zahlen-kern.de/editor/equations/a40a.png und http://www.zahlen-kern.de/editor/equations/a40g.png verwenden (und hinzufügen der Python-Code für die Vollständigkeit?) – Zeta

+0

@ Zeta Nun, Sie haben mich überzeugt. Lesezeichen für diese Site als Referenz hinzufügen. – SirGuy

+0

@GuyGreer Ich schätze Ihren Beitrag, aber schauen Sie sich die Frage noch einmal an, Mein Problem passt nicht zur Funktion a (n). –