Найти в Дзене

Разбор номера 17620 #kege по информатике #ЕГЭ1

Автор: Основная волна 19.06.24 Уровень: Базовый Определите, какова сумма протяжённостей дорог из пункта F в пункт B и из пункта E в пункт D. Данный код позволяет нам в универсальном случае определить последовательность вершин графа. И если знаем вершины, то не сложно найти длины и сумму длин! # 1 2 3 4 5 6 7
# B D E G A F C # FB = 53, ED = 2, => 55 # 1 2 3 4 5 6 7
# F E D C A B G # ED = 53, FB = 2, => 55 Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻 Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!
Оглавление

Автор: Основная волна 19.06.24

Уровень: Базовый

Условие задачи:

Определите, какова сумма протяжённостей дорог из пункта F в пункт B и из пункта E в пункт D.

Теоретическая справка:

Данный код позволяет нам в универсальном случае определить последовательность вершин графа. И если знаем вершины, то не сложно найти длины и сумму длин!

Код решения:

-2

Результат:

# 1 2 3 4 5 6 7
# B D E G A F C
# FB = 53, ED = 2, => 55
# 1 2 3 4 5 6 7
# F E D C A B G
# ED = 53, FB = 2, => 55

Комментарии к коду:

  1. from itertools import permutations
    Импортируем функцию permutations из модуля itertools для генерации всех возможных перестановок элементов.
  2. table = '12 15 16 21 23 24 32 36 37 42 47 51 56 61 63 65 73 74'
    Определяем строку 'table', представляющую набор чисел, разделенных пробелами, которые описывают соединения в графе.
  3. graph = 'AB BA AF FA FB BF FE EF BD DB ED DE EC CE DG GD CG GC'
    Определяем строку 'graph', которая описывает возможные связи между буквами A, B, C, D, E, F, G в графе.
  4. for per in permutations('ABCDEFG'):
    Запускаем цикл, перебирающий все возможные перестановки букв A, B, C, D, E, F, G.
  5. new_table = table
    Создаем копию строки 'table', чтобы постепенно заменять числа на соответствующие буквы из текущей перестановки.
  6. for i in range(1, 7 + 1):
    Запускаем вложенный цикл, который проходит по всем числам от 1 до 7.
  7. new_table = new_table.replace(str(i), per[i - 1])
    Заменяем каждое число в 'new_table' на соответствующую букву из текущей перестановки 'per', используя индексы.
  8. if set(new_table.split()) == set(graph.split()):
    Проверяем, совпадает ли множество уникальных элементов в 'new_table' с множеством уникальных элементов в 'graph'.
  9. print('1 2 3 4 5 6 7')
    Если множества совпадают, выводим строку '1 2 3 4 5 6 7', что означает, что найдено подходящее соответствие.
  10. print(*per)
    Печатаем текущее соответствие букв из перестановки, используя распаковку для форматированного вывода.

Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻
Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!