M_(n-1)
- это самое последнее вычисление, произведенное на предыдущей итерации цикла. Сохраните это в переменной и обратитесь к нему снова на следующей итерации.
Если вам не нужны промежуточные M_n
значения, просто сохраните один обновленный результат:
m = 1 # M_0, so the starting value for the sequence
for n in range(1, 100):
# update M_n for the current iteration
m *= 1 + g
или вы можете добавить в список (в этом случае предыдущее значение всегда является последним значением в списке):
m = [1] # list with M_0, so the starting value for the sequence
for n in range(1, 100):
# add M_n for the current iteration
m.append(m[-1] * (1 + g))
или используйте itertools.accumulate()
для накопления всех значений:
from itertools import accumulate, chain
calc_mn = lambda prev, n: prev * (1 + g)
# calculate starting from [1] for M_0
m = accumulate(chain([1], range(1, 100)), calc_mn)
В последнем случае m
- это итератор, выдающий результаты при итерации.