За последние 24 часа нас посетили 21807 программистов и 1662 робота. Сейчас ищут 849 программистов ...

Кратчайший путь на PHP

Тема в разделе "Прочие вопросы по PHP", создана пользователем Fusix, 9 апр 2011.

  1. Fusix

    Fusix Активный пользователь

    С нами с:
    22 фев 2010
    Сообщения:
    67
    Симпатии:
    0
    Здравствуйте. Мне нужен код для нахождения кратчайшего пути от точки (х, у) к точке с выводом пути в виде: массива ходов и т.п. Заранее спасибо. У меня никаких идей...
     
  2. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
    x, y означает точку на плоскости? Какой формы препятствия?
     
  3. titch

    titch Активный пользователь

    С нами с:
    18 дек 2010
    Сообщения:
    847
    Симпатии:
    0
    я, конечно, понимаю что вам надо. но пока вы не научитесь формулировать задачу, помогать вам не стану. кратчайший путь от x до y - это вектор длиной (y-x) считается в один ход. это отличный ответ на то, что вы попросили

    что сейчас имеем: пространство не определено. количество ходов не определено. требования к характеру движения не определены. есть только начальная точка, а вторую украли где-то по дороге, сказали что надо еще снабдить массивом всё это добро
     
  4. YSandro

    YSandro Старожил

    С нами с:
    7 апр 2011
    Сообщения:
    2.523
    Симпатии:
    2
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    titch
    не стану
    не станут и не смогут, ибо не зная задачи решения точно не найти :D
     
  6. Fusix

    Fusix Активный пользователь

    С нами с:
    22 фев 2010
    Сообщения:
    67
    Симпатии:
    0
    Задача такова:
    Есть квадратные клетки с координатами x и y.
    Есть препятствия, тоже
    [​IMG]
    (Зеленая - старт, красная - старт)

    Нужно написать что-то типа алгоритма A* на PHP.
    По диагонали ходить не нужно. Только вертикаль и горизонталь
     
  7. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    1) алгоритм форда-беллмана
    2) алгоритм фронта волны
    но сначала нужно построить граф и матрицу смежности
    теория и решение http://www.twirpx.com/file/16042/
    сначала лучше попробуй на бумаге
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    решить не возможно!
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    [vs]
    решение в ноль ходов
     
  10. Вльдемар

    Вльдемар Активный пользователь

    С нами с:
    20 май 2006
    Сообщения:
    635
    Симпатии:
    0
    Адрес:
    Белхород
  11. goshalve

    goshalve Guest

    1)Нужна структура -элемент хода,кторая содержтит координаты,а также массив этих структур.Этот массиф будет переменной ход
    2)Нужна функция,которая бы из текущей точки создавала новый ход во всех возможных направлениях по 1 клетке,назад ходить нельзя,причем если ход попадет в коррдинату,где можно было попасть меньшим числом ходов-этот ход уничтожить.Помечать клетки,где был объект(они уже минимально числом ходов сразу определяются)
    3)Крутить функцию до тех пор,пока не дотигнуто будет конец финального поля
     
  12. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    возможное, но не очень хорошее решение, - рекурсивный поиск
     
  13. goshalve

    goshalve Guest

    Gromo
    Как ты это собираешься рекурсией делать?
     
  14. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    а я не собираюсь делать. просто говорю, что это одно из возможных решений, но не очень хорошее