Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 17.08.2019
Сообщений: 7

Найти кратчайший путь

14.01.2020, 12:05. Показов 3491. Ответов 20

Студворк — интернет-сервис помощи студентам
Добрый день, знаю таких программ куча и т.д., но найти подходящую я не смог. Может у кого имеется в арсинале или знает как ее сделать, так как я в этом ноль.
Суть, есть база городов.
Пример:
Владивосток-Артем=30
Владивосток-Де-Фриз=10
Артем-Де-фриз=15
Штыково-Де-Фриз=40
Артем-Штыково=50
Штыково-Шкотово=20
Мы должны вписать: Владивосток-Шкотово. И исходя из этого нам должен построится кроткий маршрут.
Вывод выглядит следующим образом: Владивосток->Де-фриз->Штыково->Шкотово = 70км
Базу городов заполнять нужно в программе самой, а в консоле только вписываем откуда куда.

С меня кола или спрайт или т.п.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2020, 12:05
Ответы с готовыми решениями:

Как найти кратчайший путь?
Нужно реализовать алгоритм для нахождения кратчайшего пути. На ребрах указано время прохождения улицы(переулка). Нужно найти путь по...

Найти кратчайший путь шахматного короля
Здравствуйте, имеется задача: Есть шахматное поле NxM N, M ≤ 10^9 На шахматном поле отмечено два прямоугольника размерами не менее...

Как найти НЕ Кратчайший путь в графе ?
Мне нужно найти не кратчайший путь в графе от одной вершины к другой, граф неориентированный, задан списком смежности типа: 5 1 1 2 3...

20
4949 / 2289 / 287
Регистрация: 01.03.2013
Сообщений: 5,991
Записей в блоге: 32
28.01.2020, 00:47
Студворк — интернет-сервис помощи студентам
Решал недавно по работе, стандартный Дейкстра
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
(def edges [["Владивосток" "Артем" 30]
            ["Владивосток" "Де-Фриз" 10]
            ["Артем" "Де-Фриз" 15]
            ["Артем" "Штыково" 50]
            ["Штыково" "Де-Фриз" 40]
            ["Штыково" "Шкотово" 20]])
 
(defn path-from-to
  "Dijkstra minimal path algorithm"
  [grid from to]
  (let [visits (loop [vertex from
                      visits {vertex {:cost 0}}]
                 (if (= vertex to) visits
                     (let [vertex-time (get-in visits [vertex :cost])
                           neighbors (->> vertex grid keys (remove #(get-in visits [% :processed?])))
                           visits* (reduce (fn [acc neighbor]
                                             (let [neighbor-time (+ vertex-time (get-in grid [vertex neighbor]))]
                                               (update acc neighbor (fn [{:keys [cost] :as val}]
                                                                      (if (and cost (< cost neighbor-time))
                                                                        val
                                                                        (assoc val :cost neighbor-time :prev vertex))))))
                                           (assoc-in visits [vertex :processed?] true)
                                           neighbors)
                           vertex* (->> visits*
                                        (remove (comp :processed? second))
                                        (safe-min-key (comp :cost second))
                                        first)]
                       (if vertex* (recur vertex* visits*) visits*))))]
    {:path-time (get-in visits [to :cost])
     :path (loop [vertex to
                  path (list vertex)]
             (if-let [prev (get-in visits [vertex :prev])]
               (recur prev (cons prev path))
               (-> path vec)))}))
 
(path-from-to (reduce (fn [acc [f t d]] (-> acc
                                            (assoc-in [f t] d)
                                            (assoc-in [t f] d))) {} edges)
              "Владивосток" "Шкотово")
Code
1
{:path-time 70, :path ["Владивосток" "Де-Фриз" "Штыково" "Шкотово"]}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.01.2020, 00:47

Найти кратчайший путь из вершины u в вершину v
Уффф, к завтрашнему дню нужно сдать эти задачи, помогите пожалуйста кто чем сможет :sorry: (следующие задачи через обходы в глубину и...

Как найти кратчайший путь в лабиринте?
Чтобы найти кратчайший путь в лабиринте использую волновой алгоритм, его сделал, но вот кратчайший путь не получается восстановить. ...

Найти самый кратчайший путь в массиве
У меня есть динамический массив в котором количество строк задаётся при выполнении программы, а количество строк неизменно и равно 3. Мне...

Найти кратчайший путь, без массивов
В общем дали задачку, всей группой голову уже неделю ломаем. Суть в следующем: необходимо найти длину кратчайшего пути из M в S. По...

Найти кратчайший путь между двумя заданными пунктами
Прошу объявить общий сбор всех хакеров, нужно решить задачу на C++. У меня ВСТАЛА небольшая проблема, так как я не професси, я не могу...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru