[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вычисление стоимости между зонам
semkin
Доброе время суток. Уважаемые форумчане, у меня есть такой вопрос. Существует, предположим 10 зон: Зона1, Зона2 ... Зона10. Я хочу, чтобы при выборе, к примеру Зона2 - Зона 4 выходила стоимость проезда и т.д. Таблицу "Зоны" в бд уже сделал. Не знаю как сделать таблицу стоимости. Подскажите пожалуйста, как я могу подойти к реализации этого вопроса. Буду очень признателен за помощь.
Спасибо.

_____________
Береги свою мечту. Достигнув ее ты станешь одним из избранных!!!
alexbel2404
Что первое на ум пришло. Если допустим цена от зоны 1 до зоны 2 = цене от зоны 5 до зоны 6 и т.д. Берешь контрольную точку, допустим зону 1, расписываешь цену для всех зон, т.е. сколько будет стоить проехать от 1 до 2, от 1 до 3, от 1 до 4 и т.д. Для вычисления, допустим от зоны 2 до зоны 4, будет такая формула:
(цена от зоны 1 до зоны 4) - (цена от зоны 1 до зоны 2) = цена от зоны 2 до зоны 4.

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

Фух, что-то я сам запутался)
semkin
вначале я тоже так хотел сделать, но передумал, ведь зоны расположенный не по прямой линии, а как бы хаотично. т.е. к примуру, будет большая вероятность того, что из зоны 2 в зону 4 может быть расстояние ближе чем из зоны1 в зону2 и т.д.

_____________
Береги свою мечту. Достигнув ее ты станешь одним из избранных!!!
NitroGenerate
Допустим 5 зон, мой бредовый вариант будет работать если мы арифметически правильно выстроим зоны. с id
зона1=з1
Зона 1 (из з1 можно только в ближайшую з2(цена туда) (цена от туда))
Зона 2 (из з2 можно в з3(цена туда) (цена от туда))
Зона 3 в з4(цена туда) (цена от туда)
Зона 4 в з5(цена туда) (цена от туда)
Зона 5 в з6(цена туда) (цена от туда)
от туда - из большой зоны в меньшую
туда - из меньшей зоны в эту
И так логика.
Что бы добраться из з2 в з4 нужно, пошагово пробежаться по всем зонам и сложить полученные цены.
допустим з2 меньше з4, будем прибавлять к з2 по целому числу и проверять.
з2 не последняя?
--да - з2 цена=цена+цена туда з2;
находим следующую зону, это з3
з3 == з4 ?
нет
з3 цена=цена+цена туда з3;
находим следующую. з4
з4=з4
да, значит завершаем, цена=цена+цена туда з3;


а зон будет много?
Просто если мало, то можно действительно в ручную все расписать.


У меня кстати был проект по flash в общем делал отрсовку пройденного пути.
Можно отрисовать все пути. задать масштаб.
наставить точек на путях и заставить флешку автоматически просчитывать самый короткий путь. так как делают это наши GPS навигаторы.
paa66
semkin, я бы сделал так: зная алгоритм изменения цен от зоны до зоны, нужно применить этот алгоритм к вычислениям. Например, цена проезда на электричке по зоне 1 равна 100 рублей, а по зоны на 1% больше, значит 101% и т.д. Для этого применяешь функцию с алгоритмом for $i=1 до 10 (10 зон) шаг 1 ($i++) и увеличиваешь базовую ставку 100 рублей на 1%. Потом делаешь вторую функцию, которая будет высчитывать цену проезда между зонами. У этой функции будут начальная зона, например, зона 2 (она вычисляется в функции выше) и конечная - зона 4 (выполняется первая функция с 3 и 4 зонами). Потом цены получает вторая функция, а дальше цена равна: зона 2+зона3+зона4. Как это сделать, надеюсь, сообразишь. Сразу скажу, что я в программировании совсем "зелёный", так что извини, если предлагаю не то smile.gif
alexbel2404
Цитата (semkin @ 8.02.2012 - 16:45)
вначале я тоже так хотел сделать, но передумал, ведь зоны расположенный не по прямой линии, а как бы хаотично. т.е. к примуру, будет большая вероятность того, что из зоны 2 в зону 4 может быть расстояние ближе чем из зоны1 в зону2 и т.д.

а чем тебе мой вариант с расстоянием не понравился?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.