Задать вопрос
@Nonoxy

Как рассчитать общую стоимость?

Вообщем, решил чутка упростить себе жизнь и сделать калькулятор цены буста на фанпее, рассчёт стоимости идёт по промежуткам(ниже приложу фото), столкнулся с такой проблемой: как научить программу понимать промежутки, т.е.
1500 (начальный) - 3500 (конечный)
Путём математики второго класса понимаем, что всего нужно 2000 рейтинга поднять, но на сайте цены указаны за диапазоны, т.е. 1-2000 (n-я цена), 2000-3000 (n-я цена), 3000-3500 (n-я цена), чувствую, что ответ на мой вопрос банальный, и я хожу где-то по поверхности.
P.S.
Вписываю в программу начальный и конечный рейтинг605728fbc9a81881312034.png
  • Вопрос задан
  • 633 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@o5a
Как можно это посчитать.

Создать словарь последовательных диапазонов с ценами.
prices = {2000: 70, 3000: 100, 3500: 150, 4000: 200, 4500: 250, 5000: 300}

Затем постепенно проходить по словарю, сравнивая текущий начальный рейтинг с ключом.
Если рейтинг ниже диапазона, то к итоговой сумме добавляем расчетную сумму из этого диапазона, т.е. (граница - рейтинг)*цена, после чего текущий рейтинг выставляем на эту границу.
И так пока не дойдем до нужного рейтинга.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
ProgrammerForever
@ProgrammerForever
Учитель, автоэлектрик, программист, музыкант
Да, так и надо считать. Если диапазон входит полностью - считаете его целиком, если только его часть - то считаете долю от диапазона.

Вот демонстрационная таблица

605734c168526238238062.png
Ответ написан
Комментировать
Vindicar
@Vindicar
RTFM!
У тебя есть два возможных случая.
а. Начальный рейтинг и целевой рейтинг в одном диапазоне. Рассчитываешь стоимость по цене этого диапазона.
б. Начальный рейтинг и целевой рейтинг в разных диапазонах.
Тогда общая стоимость будет складываться из трёх значений.
1) Стоимость выхода из начального диапазона: (верхняя граница - начальный рейтинг) * цена диапазона
2) Стоимость прохода через все промежуточные диапазоны: Сумма ((верхняя - нижняя) * цена диапазона). Может быть нулевой, если целевой рейтинг в соседнем диапазоне.
3) Стоимость внутри целевого диапазона: (целевой рейтинг - нижняя) * цена диапазона

Возможно, разности придётся округлить вверх до минимального количества покупаемого за раз рейтинга.

А вообще ты уверен, что в рамках одной транзакции цена за рейтинг разная? Может, она зависит только от стартового рейтинга? Тогда буст большими объемами с малых рейтингов будет выгоднее.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы