Формула арифметической прогрессии

У меня проблемы с вычислением арифметических прогрессий. Я ищу формулу с выходом, который увеличивается на 100 больше, чем это было в прошлый раз ... вот так:

100, 300, 600, 1000, 1500

Итак, схема увеличения выглядит так:

(100+)200, (300+)300, (600+)400, (1000+)500, etc

2 часа и 2, передняя и задняя, ​​бумага для заметок не дали такой формулы. Я надеюсь, что это сработает, потому что мой мозг сейчас буквально перегорел.

По сути, это формула повышения уровня для ролевой игры. Когда вы достигли уровня 1, вам нужно 100 опыта для повышения уровня. Уровень 1: 100 (увеличено на 100)

2 уровень: 300 (увеличено на 200)

Уровень 3: 600 (увеличено на 300)

Уровень 4: 1000 (увеличено на 400)

и так далее...

Я не хочу жестко программировать уровни, так что, пожалуйста, помогите мне.


person cerealspiller    schedule 06.09.2011    source источник
comment
en.wikipedia.org/wiki/Triangular_number   -  person John La Rooy    schedule 06.09.2011


Ответы (2)


запишите все свои выражения:

level i = leveil i-1 + i*100
level i-1 = level i-2 + i-1 * 100
...
level 1 = level 0 + 100

затем суммируя эти формулы на один уровень k Левая часть удаляет следующий один уровень k справа, и вы получаете:

Level i = level 0 + sum(k , k=1 to i)*100

then level i = i*(i+1)/2 *100
person Ricky Bobby    schedule 06.09.2011
comment
Отлично работает! Огромное спасибо! Единственное, что я мог придумать, - это создать отдельную переменную для добавления к lvl * 100. Спасибо еще раз! - person cerealspiller; 06.09.2011

Это простое уравнение с треугольными числами.

k * n * (n + 1) / 2

где k=100 и n=1,2,3,.... Вы можете получить свой список следующим образом:

k = 100
n_max = 10

for n in range(1, n_max):
    print k * n * (n + 1) / 2

где n_max - количество необходимых вам элементов.

person Ignacio Vazquez-Abrams    schedule 06.09.2011