Нужна помощь в преобразовании итеративного шаблона в формулу - PullRequest
0 голосов
/ 22 сентября 2009
var = 8

itr 1:
var == 8 (8 * 1)

itr 2:
var == 24 (8 * 3)

itr 3:
var == 48 (8 * 6)

itr 4:
var == 80 (8 * 10)

itr 5:
var == 120 (8 * 15)

Pattern: (var * (последний множитель + текущая итерация))

В основном я хочу получить результат формулы (itr) без необходимости повторять до itr.

Ответы [ 3 ]

6 голосов
/ 22 сентября 2009

Значение var в итерации nth в 8 раз больше суммы 1..n. Сумма 1..n определяется по формуле (n)(n+1)/2; например, сумма от 1..6 равна 6 * 7/2 = 21 .

Таким образом, var == 4(i)(i+1) на итерации ith.

2 голосов
/ 22 сентября 2009

Используйте треугольные числа .

0 голосов
/ 22 сентября 2009

Умножьте 8 на сумму 1 для текущей итерации:

>>> def itr(n): return 8 * sum(xrange(n+1))
...
>>> itr(1)
8
>>> itr(2)
24
>>> itr(3)
48
>>> itr(4)
80
>>> itr(5)
120
...