|
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 7
|
|
Из пункта А в пункт Б самый быстрый путь17.12.2017, 22:43. Показов 2225. Ответов 3
Ребята, выручайте. Задача интересная, прикладная, но что-то я подвис с её решением.
Чтобы проще понять, что требуется, представьте себе, что у вас есть некая страна, в которой есть для простоты 9 городов. Каждый город для удобства обозначен уникальной цифрой от 1 до 9. Между городами есть дороги (не между всеми), которые имеют определённую протяжённость, заранее известную. По некоторым дорогам можно проехать только в одну сторону, по другим - в обе. В общем всё это вышеописанное дело можно задать вот таким двумерным массивом чисел (номер строки - точка отправления, номер столбца - точка прибытия): 00 01--02-03-04--05-06--07-08-09 01(-1)(10)(-1)(11)(15)(-1)(-1)(-1)(-1) 02(-1)(-1)(21)(-1)(12)(-1)(-1)(-1)(-1) 03(-1)(21)(-1)(-1)(-1)(-1)(-1)(-1)(-1) 04(-1)(-1)(-1)(-1)(18)(19)(-1)(-1)(-1) 05(-1)(-1)(-1)(-1)(-1)(-1)(17)(-1)(-1) 06(-1)(-1)(-1)(-1)(-1)(-1)(-1)(14)(13) 07(-1)(-1)(-1)(-1)(-1)(-1)(-1)(-1)(20) 08(-1)(-1)(-1)(-1)(-1)(-1)(-1)(-1)(16) 09(-1)(-1)(-1)(-1)(-1)(-1)(-1)(-1)(-1) В данной табличке неотрицательные цифры - это и есть расстояния между городами (может быть и ноль), а (-1) это признак того, что между этими городами в данном направлении дорога отсутствует. К примеру, между городами 1 и 2 автомобилю необходимо проехать 10 км, между городами 1 и 3 прямой дороги нет, а между городами 2 и 3 дорога в обе стороны длиной 21 км в одну сторону. Вот такие исходные данные. А вот в чём задача, которая вызывает у меня проблему, я сейчас попробую описать. У вас есть автомобиль, который должен ехать из пункта А в пункт Б. Он перемещается по одному из возможных путей, заданных в массиве. Необходимо подсчитать все возможные длины путей из точки А в точку Б, запомнив сам путь перемещения (к примеру, из точки 1 в точку 9 пути 1-2-5-7-9 или 1-4-6-8-9 и т.п.) и его длину. Дальше надо сравнить эти маршруты и найти наиболее короткий (ну, это легко). Проблема вторая если один из участков между городами упирается в город, путь из которого возможен только назад в точку отправления (участок между городами 2 и 3), необходимо учесть и этот участок возможного маршрута (т.е. нарушается логика увеличения цикла, так как надо возвращаться назад). В итоге в данном примере возможные пути выглядят следующим образом, если пункт А - это 1, а пункт Б -9: 1-2-3-2-5-7-9 (длина пути 101 км) 1-2-5-7-9 (длина пути 59 км) 1-4-5-7-9 (длина пути 56 км) 1-4-6-8-9 (длина пути 60 км) 1-4-6-9 (длина пути 43 км) 1-5-7-9 (длина пути 52 км) Отсюда минимальное расстояние между точками А (1) и Б (9) равняется 43 км и это расстояние соответствует маршруту 1-4-6-9... Но все эти цифры и выводы надо получить программно при том, что количество городов задаётся произвольным целым числом от 1 и до хотя бы 100 (а не 9 городов, как в данном примере). Т.е. надо сделать общий алгоритм этих вычислений. И такая печаль, что у меня ни фига не получается в связи с описанными, как для меня, проблемами. Ребята, очень прошу помощи. Там есть ещё графическое продолжение, но хотя бы эту часть. Дальше я сам.
0
|
|
| 17.12.2017, 22:43 | |
|
Ответы с готовыми решениями:
3
Самый быстрый путь изучения XSLT Сколько времени потребуется первому пешеходу на путь из пункта А в пункт В?
|
|
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
|
|
| 17.12.2017, 23:27 | |
Сообщение было отмечено cyberip как решение
Решение
cyberip, описанная задача представляет собой кратчайший обход взвешенного графа. Алгоритм Дейкстры прекрасно подойдёт, только надо будет правильно читать матрицу связей
1
|
|
|
0 / 0 / 0
Регистрация: 21.04.2015
Сообщений: 7
|
|
| 17.12.2017, 23:36 [ТС] | |
|
в этом и проблема как правильно считать матрицу
0
|
|
|
Заклинатель змей
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
|
|
| 22.12.2017, 19:57 | |
|
cyberip, как двумерную матрицу связи для каждого элемента, например
0
|
|
| 22.12.2017, 19:57 | |
|
Помогаю со студенческими работами здесь
4
Задачка: добраться из пункта A в пункт B Самый быстрый сервер Самый быстрый алгоритм Факториала самый быстрый МК общего применения Какой самый быстрый архиватор ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|