Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 07.12.2019
Сообщений: 45

Кратчайший путь в графе

07.12.2019, 23:34. Показов 2840. Ответов 2

Студворк — интернет-сервис помощи студентам
Добрый вечер, есть код, но его надо доработать. Не понимаю как и что. Задание:
строка ввода # 1: n - целое число, показывающее, сколько путей у нас будет на графике

строка ввода № 2: первые две соединенные вершины

строка ввода № 3: еще две соединенные вершины

...

строка ввода # n + 1: последние подключенные вершины

строка ввода # n + 2: вершина, чтобы начать и закончить движение

Программа выводит кратчайший путь. Если существует более 1 пути одинакового размера, проргам выводится по алфавиту больше. Например, если возможными путями являются A B D и A C D, берется первый (A B D)
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
graph = {'A': ['B', 'I'], 'B': ['C', 'J'], 'C': ['F', 'D'], 'D': ['E'], 'E': ['D', 'F'], 'F': ['C', 'G', 'I'], 'J':['B', 'H', 'A'], 'G':['F', 'H'], 'H':['G', 'I', 'J'],'I':['H','A']}
def find_shortest_path(graph, start, end, path=[]):
    path = path + [start]
    if start == end:
        return path
    if not start in graph:
        return None
    shortest = None
    for node in graph[start]:
        if node not in path:
            newpath = find_shortest_path(graph, node, end, path)
            if newpath:
                if not shortest or len(newpath) < len(shortest):
                    shortest = newpath
    return shortest
Пример:
input:

8
A B
A C
B C
B D
C D
D C
E F
F C
A D

output:

A B D
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.12.2019, 23:34
Ответы с готовыми решениями:

Найти кратчайший путь в ориентированном графе с вершинами и дугами разных цветов
Не могу решить задачу, уже не знаю сколько времени долблюсь лбом об стену, ничего не выходит. Задание следующее: Дан ориентированный...

Вычислить кратчайший путь
Помогите, пожалуйста, написать программу для вычисления кратчайшего пути от Spb до Kazan. Вот схема:...

Найти кратчайший путь по страницам википедии
Пользователь задаёт начальную и конечную страницу википедии, из начальной в конечную можно попасть по ссылкам которые ведут на другие...

2
1 / 1 / 0
Регистрация: 07.12.2019
Сообщений: 45
09.12.2019, 01:44  [ТС]
codcw, может тут тоже сможете помочь?
0
09.12.2019, 01:54

Не по теме:

julija2019, да не, мне неохота с таким возиться, если бы мне такое задали я бы делал сидел вникал, но для кого-то другого разбираться в такой неинтересной теме как графы... xD
Да и мне самому щас курсач делать на завтра(сегодня), благо лёгкий

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.12.2019, 01:54
Помогаю со студенческими работами здесь

Оптимальный путь в графе
Ограничение времени 1 секунда Ограничение памяти 64Mb Ввод стандартный ввод или input.txt Вывод стандартный вывод или output.txt ...

Найти кратчайший путь
Всем доброго дня и больше свободного времени! Мне вот вдруг пришлось окунуться в мир алгоритмов, который я не очень люблю, ибо такими не...

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

Найти кратчайший путь в системе координат
Сама задача такая: Дана координатная плоскость. Кролик стоит в точке (0;0). Он может прыгнуть вправо, влево, вниз или вверх на одну...

Найти кратчайший путь между точками
Добрый день, начал изучать Python. И застрял на задачке по нахождении кратчайшего пути между точками (0,2), (2,5), (5,2),(6,6),(8,3)....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru