Бесплатно
огэ
информатика
задание 9
графы
схемы

Задание 9. Подсчёт путей по схеме дорог — теория и разбор

0 просмотров0 скачиваний

Совет: выделите текст, чтобы спросить у ИИ, или наведите (на телефоне — тапните) на подчёркнутое слово — увидите подсказку.

Задание 9. Подсчёт путей по схеме дорог — теория и разбор

Схема с городами и стрелками-дорогами выглядит устрашающе, но задача решается без перебора всех путей руками — достаточно один раз пройти по схеме и в каждом городе записать одно число.

Что нужно знать

Схема дорог — это : города — точки (вершины), дороги — стрелки между ними (рёбра). Все дороги односторонние — двигаться можно только по направлению стрелки, и в схемах этого задания нет способа вернуться туда, откуда пришёл (нет циклов).

Способ решения — последовательный подсчёт: в каждом городе записываем, сколько РАЗНЫХ путей ведёт туда из города-старта. Начинаем со старта (там всегда 1 — «стоять на месте»), а дальше для каждого следующего города складываем числа всех городов, из которых в него ведёт прямая дорога. Число путей до города — сумма чисел городов-источников

Число путей до города — это сумма чисел всех городов, откуда в него ведёт прямая дорога, а не единица за каждую дорогу: если в город ведут две дороги из городов с числами 3 и 2, то в него ведёт 3 + 2 = 5 путей, а не 2.

Правило порядка подсчёта: обрабатывать города можно только после того, как посчитаны ВСЕ города, из которых в него ведут дороги — иначе сумма будет неполной. Обычно достаточно идти слева направо по схеме.

Разбор примера

Схема дорог связывает города A, B, C, D, E, F. Все дороги — одностороннее движение, в направлении, указанном стрелками:

A→B, A→C, B→D, B→E, C→D, C→F, D→F, E→F.

Сколько существует различных путей из города A в город F? Схема дорог с городами A-F и стрелками-дорогами

Как думать. Идём по схеме от A и в каждом городе подписываем число путей до него — сумму чисел городов, из которых есть прямая дорога сюда.

Показать решение и ответ

Считаем по порядку (каждый следующий город обрабатываем, только когда посчитаны все его «входящие» города):

  • A = 1 (старт).
  • B = A = 1 (дорога A→B).
  • C = A = 1 (дорога A→C).
  • D = B + C = 1 + 1 = 2 (дороги B→D и C→D).
  • E = B = 1 (дорога B→E).
  • F = C + D + E = 1 + 2 + 1 = 4 (дороги C→F, D→F, E→F).

Ответ: 4

Как решить в Python

Тот же процесс — обычная динамика на графе: идём по городам в порядке, где источники уже посчитаны, и складываем:

edges = {
    'A': ['B', 'C'],
    'B': ['D', 'E'],
    'C': ['D', 'F'],
    'D': ['F'],
    'E': ['F'],
    'F': [],
}
order = ['A', 'B', 'C', 'D', 'E', 'F']  # топологический порядок — источники раньше целей

count = {v: 0 for v in order}
count['A'] = 1
for v in order[1:]:
    count[v] = sum(count[u] for u in order if v in edges[u])

print(count['F'])  # 4

Такой код особенно полезен, когда городов много и держать в голове порядок подсчёта становится сложно — важно только один раз правильно переписать схему в список рёбер.

Задание 9. Подсчёт путей по схеме дорог — теория и разбор
Метод последовательного подсчёта путей на графе-схеме дорог — разбор примера и проверка в Python.

Похожие материалы

Задание 9. Пути с условием: через город и в обход города — теория и разбор
Бесплатно

Задание 9. Пути с условием: через город и в обход города — теория и разбор

Пути с условием

Как считать пути на графе, проходящие через заданный город или избегающие его — разбор примера и проверка в Python.

00
Подсчёт путей на графе: тренажёр
Бесплатно

Подсчёт путей на графе: тренажёр

Шесть листов с задачами на подсчёт количества путей на схеме дорог (графе) для задания 9 ОГЭ по информатике. Материалы: ФИПИ, открытый банк заданий.

PNG+520
Анализ схемы дорог: сборник задач
Бесплатно

Анализ схемы дорог: сборник задач

Шесть листов с задачами на анализ схемы дорог и подсчёт различных путей для задания 9 ОГЭ по информатике. Материалы: ФИПИ, открытый банк заданий.

PNG+510
Графы дорог: практикум
Бесплатно

Графы дорог: практикум

Шесть листов с задачами на определение количества путей в графе дорог для задания 9 ОГЭ по информатике. Материалы: ФИПИ, открытый банк заданий.

PNG+500
Задание 16. Программирование на языке программирования — теория и разбор
Бесплатно

Задание 16. Программирование на языке программирования — теория и разбор

Типовой шаблон решения: цикл + условие делимости + счётчик — разбор примера на Python и Паскале.

10
Задание 15. Алгоритм для исполнителя Робот — теория и разбор
Бесплатно

Задание 15. Алгоритм для исполнителя Робот — теория и разбор

Команды Робота, циклы «пока свободно» и алгоритм, работающий для поля любого размера — разбор примера и проверка в Python.

00
Задание 9. Подсчёт путей по схеме дорог — теория и разбор — Задание 9. Анализ информации в виде схем (графы), Информатика ОГЭ | скачать