Мне нужно перебрать формулу амортизации, которая выглядит следующим образом:
R = ( L * (r / m) ) / ( 1 - pow( (1 + (r / m)), (-1 * m * t ) );
Я использую цикл for
для итерации и увеличиваю L (стоимость кредита) на 1каждый раз.Цикл работает просто отлично, но он заставил меня задуматься о чем-то другом, а именно о значении (или его отсутствии) выполнения базовых операций перед выполнением цикла и последующей ссылки на эти значения через переменную.Например, я мог бы дополнительно изменить эту функцию, чтобы она выглядела как
// outside for loop
amortization = (r/m)/(1 - pow( (1+(r/m)), (-1*m*t) ) )
// inside for loop
R = L * amortization
Таким образом, вместо того, чтобы выполнять много математических операций на каждой итерации цикла, я могу просто ссылаться на переменную сумму и выполнятьодна операция.
Интересно, насколько это актуально?Есть ли какое-то реальное значение при извлечении этих операций, или сэкономленное время настолько мало, что мы говорим об экономии миллисекунд от цикла for, который повторяется прибл.200 000 раз.Последующий вопрос: стоило ли бы извлекать подобные операции, если бы я выполнял более дорогие операции, такие как sqrt
?
(примечание: в случае, если это имеет значение, я спрашиваю об этом специально с помощью c ++в уме)