Как рассчитать сумму чисел, каждое из которых увеличивается в геометрической прогрессии? - PullRequest
0 голосов
/ 02 октября 2018

Моя математика ужасна (извините!) Я не могу понять, какое должно быть простое уравнение для моей игры.

В игре у меня есть цена за предмет, который вы можете приобрести без ограничений.количество раз - каждый раз, когда вы покупаете его, цена повышается.

Скажем, стоимость товара составляет $ 5.Здесь я куплю это 10 раз: 5 + 20 + 45 + 80 + 125 + 180 + 245 + 320 + 405 + 500 = общая стоимость покупки в 1925 $ 10 раз.

Что я пытаюсь достичьзатем следует предоставить кнопки «Купить x10», «Купить x20» и т. д., которые будут определять стоимость его покупки 10 раз за один раз.

Вот мой код в настоящее время, который приведет к указанным выше ценам:

    public function CalcuatePrice(timesAlreadyPurchased:Number,timesToBuy:int=1):Number {
        var price:Number;
        var basePrice:Number = 5;
        var multiplier:Number;

        //Always need at least 1 (items actually start at purchased 0 times)
        timesAlreadyPurchased += 1;

        //Apply iterations
        if (timesToBuy!=1){
            multiplier = (timesToBuy * (timesToBuy + timesAlreadyPurchased)) / 2;
        } else {
            multiplier = timesAlreadyPurchased; 
        }

        price = basePrice * multiplier;

        return price;
    }

В настоящее время это будет работать только тогда, когда timesToBuy равен 1. Проблема на линии:

multiplier = (timesToBuy * (timesToBuy + baseMultiplier)) / 2;

Я просто не уверен, какое уравнение использовать, чтобы получить "timesToBuy = 10", чтобывернуть значение $ 1925, когда «timesAlreadyPurchased = 0».

Дополнительно - кто-нибудь знает, как называется этот тип уравнения в математике?Сумма экспоненциальных рядов возможно?Спасибо.

1 Ответ

0 голосов
/ 02 октября 2018

Похоже на арифметическую прогрессию.


Цена увеличивается на 15, 25, 35, 45 и т. Д., Поэтому цена n -ой покупки может быть выражена как отношение повторения:

enter image description here

Решите это путем подстановки:

enter image description here

Хорошее простое выражение,Последний шаг использовал формулу от здесь .например, для n = 3 (3-я покупка) цена составляет 5 * 3^2 = 45, как и ожидалось.


Чтобы получить общую стоимость, конечно, просто сложите их:

enter image description here

Использование другой формулы из той же страницы, на которую ссылаются выше.

Тест на 5 покупок:

  • Оригинал: 5 + 20 + 45 + 80 + 125 = 275
  • Формула: 5 / 6 * 5 * 6 * 11 = 275

Обновление - формула в "псевдокоде":

price = (5.0 / 6.0) * timesToBuy * (timesToBuy + 1) * (2 * timesToBuy + 1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...