Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Delphi: Общие вопросы > Памажите, нужна формула вместо цикла. |
Автор: Jiro 02.01.18, 14:07 |
Итак представьте себе что есть некий банк который каждый день выплачивает процент от суммы депозита, и каждый день выплаченная сумма прибавляется к депозиту. Например: *Депозит 100$ *Ставка банка: 2,5% в сутки *Сколько бабок будет через 3-ое суток и какой выхлоп ? через сутки: 102,5$ через двое 105,0625$ через трое 107,6890625$. можно изобретать велосипед для подсчёта но в юните math есть функция FutureValue которая всю эту работу делает. <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> var total: extended; .... total:=FutureValue(2.5%/100%, 3-сутки, 0, 100$, ptEndOfPeriod); выхлоп:= total - 100$; А теперь представьте, что нужно рассчитать сумму депозита, зная: желаемую сумму выхлопа, ставку банка и срок хранения депозита. Например: *Желаемый выхлоп = 8$ *Ставка банка: 2,5% в сутки *Депозит на 3-рое суток Сколько нужно положить бабла в депозит, что бы через 3 дня выхлоп был 8$ ? ответ: 104,089$ точность до тысячных вполне годится. ================ По идее всё это можно сделать в цикле используя функцию FutureValue и инкремент по значению депозита, но этожь совсем не круто и долго ... Ещё можно вывести формулу приблизительного вычисления, вычислить приблизительное значение и от него отталкиваться опятьже в цикле используя FutureValue. И третий вариант, а он вобще возможен ? Можно ли вычислить всё что нужно по формуле ? я конечно пытался состряпать такую формулу, но туповат я для такой задачи. За сим спрашиваю подмогу. |
Автор: MBo 02.01.18, 14:46 |
В школе степенную функцию и логарифмы ещё преподают? Первое просто sum = startvalue * (1 + procent / 100)n так что dohod = sum - startvalue = startvalue * ((1 + procent / 100)n - 1) startvalue = dohod / ((1 + procent / 100)n - 1) |
Автор: Jiro 02.01.18, 16:55 |
MBo первое и не надо, надо только второе. что такое n - Exp() ? |
Автор: MBo 02.01.18, 17:22 |
Более общее - Power |
Автор: Jiro 02.01.18, 19:42 |
MBo А ещё одну можете решить ? Есть депозит, Есть процентная ставка Есть ожидаемая прибыль Нужно вычислить срок до ожидаемой прибыли, при условии, что после каждого вознаграждения из этого вознаграждения изымается некая фиксированная сумма. |
Автор: MBo 03.01.18, 05:46 |
Нужно выписать выражение для первого периода, второго периода, третьего периода и увидеть закономерность, построить общую формулу для n-го периода. Вот начало: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> обозначим (1 + procent / 100) = mult v1 = startvalue * mult - fix v2 = (startvalue * mult - fix) * mult - fix = startvalue * mult^2 - fix * mult - fix |
Автор: Jiro 04.01.18, 11:17 |
MBo Увы не догоняю можете написать как это выглядит в виде кода готовой функции ? |