2016-07-20 3 views
0

Предположим, что Лицо вкладывает Corpus в банк ежемесячно. Каждый месяц Банк выплачивает ему проценты. Теперь для данного Инвестиционной Корпус P, ставка процента R и T владения, Я хочу, чтобы вычислить общую сумму после окончания срока пребывания.Сила усложнения

Если вы google Термин Мощность Compounding вы можете найти тысячи онлайн-калькуляторов для решения этой проблемы.

Давайте рассмотрим пример (Примечание: Это отличается от простой задачи соединения Interest):

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.

Implimentation к проблеме может быть например: (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)) 

Я знаю, что это не лучший способ. Я пробовал часы, чтобы вызвать общую формулу для этой проблемы, но не удалось. Итак, я не знаю, существует ли какая-либо Формула для этой проблемы или лучше. Алгоритм.

+0

Что случилось с этим путем? Этот алгоритм выглядит довольно просто. Вы ищете решение с закрытой формой для аналитических целей? – SirGuy

+0

Истинно говоря, я ищу любую формулу, которая сделает сложность моего алгоритма в порядке O (1). –

+0

Что такое 'n'? Я не вижу этого в вашем заявлении о проблемах выше. – SirGuy

ответ

0

Я нашел ответ.

пусть говорит, что функция 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.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 

Спасибо GuyGreer за драгоценного времени и усилий.У меня возникла идея рассмотреть r=R+1 из вашего ответа, только который разрешает проблему. В противном случае я потратил час, чтобы разбить его на простое уравнение.

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

Это может быть s в O (1) с использованием функции O (1) pow для вычисления степеней.

+0

Также вы можете использовать http://www.zahlen-kern.de/editor/equations/a40a.png и http://www.zahlen-kern.de/editor/equations/a40g.png (и добавить код Python для полноты?) – Zeta

+0

@Zeta Ну, вы меня убедили. Также закладки для этого сайта для дальнейшего использования. – SirGuy

+0

@GuyGreer Я ценю вашу привязанность, но снова рассмотрю вопрос. Моя проблема не подходит для функции a (n). –