Как сделать чтобы число с каждым разом увеличивалось, до определенного значения, за определенное кол-во раз?
Я делаю скрипт, для вычисления опыта для каждого лвла. У меня этих лвлов 100, но возьмем к примеру 10. Для первого лвла допустим нужно будет 10 опыта, для 2 лвла 15 опыта. для 3 лвла 25 и т.д до заданного конечного числа опыта(Значение опыта для последнего лвла). И вот мне нужно найти либо формулу, либо какую математическую тему что-ли(Не знаю как назвать) которая будет принимать старт(Количество опыта для 1 лвла), сколько всего лвлов, и конец(Количество опыта для последнего лвла). А получать я должен вот это самое значение опыта для каждого лвла, и такое, чтобы с каждым лвлом, оно было все больше и больше, но чтобы не пересекла границу конца(Количества опыта для последнего лвла). Возможно это можно назвать какой то прогрессией, хз, не шарю за математику, по этому и спрашиваю как это сделать. Если кому то, не понятно, то в коментах постараюсь объяснить точнее
В принципе норм, но мне не нравиться увеличение на постоянное значение, хочется именно чтобы для первых лвлов прибавление в разнице было маленькое, а для последних большое. То есть допустим с 1 по 5 лвл нужно в общем 150 опыта, а для 90-100 лвла, уже 1000. Это чисто к примеру. Если в чем то не прав, извиняюсь, но как я прочитал, арифметическая прогрессия увеличивает чисто на 1 какое то значение
Совет - не используйте для левела формулы в коде. Расчитайте по формуле, и вынесите значения в конфиг для каждого уровня.
Таким образом если вдруг на каком то уровне вы просчитались и надо что то изменить - вам надо править не код (и выдумывать какую то дичь если речь про 1 уровень), а всего лишь конфиг.
DaNKuL, Я вам формулу привел выше для k - это и есть множитель. Там exp_1 и exp_n - значения опыта для первого и последнего уровня, n - их количетсва.
Функцию логарифма и экспоненты в c# загуглите сами. Наверняка они так и называются (exp и log).
А дальше просто домножайте на этот множитель. Считайте все во float (числа с плавающей точкой). И только потом округляйте, чтобы ошибка не накпливалась.
Wataru, Хочу еще кое что уточнить. Как настроить это так, чтобы в начале умножалось сильнее, так как у меня 100 лвлов и последний лвл это 500 000 очков, и по это геометрической прогрессии только на последних 15 лвлов идет сильный подьем, то есть за 44 лвла у тебя со 100, поднимается до 4242, а с 82 лвла и 107933 очков до 500 000 очков за 18 лвлов. И как сделать чтобы не было вот такого резкого подьема, то есть допустим динамичный коэффициент, или что то другое. И тут я уже думаю формулы не будет, но если и будет, то можно формулу. Заранее огромное спасибо
exp_i = c*i^a
c = exp_1
a =(log(exp_n) - log(exp_1))/log(n)
Можно много вариантов попридумывать. Вам нужна какая-то монтонная функция, проходящая через точки (1, exp_1) и (n, exp_n). Вы находите ее форму, а потом ищите ее значения во всех целых точках от 1 до n. Выбирая функции с разной скоростью роста вы можете регулировать распределение экспы по уровням.