Алгоритм подбора параметра, чтобы подогнать ответ к заданному?
Есть некая цена Х, которую мы хотим получить.
Сложность в том, что в Х включены наценки, некоторые из которых считаются в процентах от Х.
Хочу применить алгоритм, который будет считать цену с точностью до рубля. По моему мнению, это должно выглядеть примерно так:
Берем базовую цену Б. Умножаем на коэффициент k.
Если Б*k не в диапазоне [X-1;X+1], то корректируем k в нужную сторону.
Сравниваем.
Корректируем.
Сравниваем
...
Б*k в диапазоне от [X-1;X+1] = результат достигнут.
Реализовывать придётся на php, кол-во считаемых цен - несколько тысяч, желательно чтобы кол-во итераций было поменьше. Пусть не минимально возможное, но и не как в простом переборе с фиксированным шагом.
Чтобы получить нужную прибыль с продажи, хочу посчитать цену с учётом комиссии менеджера, которая зависит от цены товара.
Точности ради, ещё несколько комиссий есть, как зависящие от цены товара, так и нет.
Да, но не совсем.
На самом деле комиссий много и в разных случаях они то фиксированные, то процентные, то смешанные.
Сейчас я так и сделал, но код такой громоздкий, что правки вносить неудобно. Поэтому решил перейти на итерации.
Violator71, Вы сами в своём алгоритме указали единственный коэффициент k.
Если у вас какой-то сложный алгоритм вычисления наценок, то возможно, что ваша задача вообще не имеет однозначного решения.
В общем случае надо разбивать шкалу исходных цен на отрезки, на каждом из которых действует единственный алгоритм вычисления финальной цены. После этого составлять формулу прямого и обратного первода цен для каждого отрезка.
Видимо, кто-то из нас неправильно понимает задачу.
Допустим, у меня 10 менеджеров, каждый из которых участвует в продаже товара и каждый из которых получает 1% от итоговой цены товара.
А я хочу получить себе 20% прибыли.
Цена закупа у меня 100 рублей. Вопрос, как мне посчитать цену за которую я хочу продать товар?
Чтобы мне на руки осталось 20 рублей?
Вот я хочу сделать так:
Поставил товар за 150 рублей (т.е. 100*1,5), посчитал комиссию: 10 человек по 1% это 10% = 15 рублей. Итого мне останется 150-100-15 = 35 рублей.
Много.
Поставлю товар за 130 рублей (т.е. 100*1,3), посчитаю комиссию: 13 рублей.
Итого мне останется 130-100-15 = 15 рублей.
Мало.
И таким перебором я хочу найти нужную мне цену.
Violator71,
X - финальная цена.
Менеджерам уйдёт 10%, то есть X * 0.1
Остаток должен составлять 120% от исходной цены Y.
X - 0.1X = 1.2Y
0.9X = 1.2Y
X = 1.(3)Y
То есть, при закупе 100р выставляете товар по 133.33р
Каждому менеджеру пойдёт по 1.33, всего 13.3
Вам остаётся 133.33 - 13.3 = 120.03р, то есть 100р + 20%
Да, вы совершенно правы, сейчас я примерно так и делаю.
Но вот приспичило мне итерационный алгоритм сделать.
Можете подсказать куда копать? Не нашёл, где посмотреть примеры таких алгоритмов.