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

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

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

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

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

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

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

Если нужно посчитать пути из A в конечный город, проходящие через промежуточный город X, задачу удобно разбить на две части:

(число путей из A в X) × (число путей из X до конца)

Это работает, потому что дорога не образует циклов: путь через X — это сначала путь до X, а потом отдельный путь от X дальше, и любую комбинацию «первая половина + вторая половина» можно взять независимо. Формула: путей через X равно произведению путей A-X и X-конец

Пути, проходящие через X, и пути, не проходящие через X, вместе составляют вообще все пути — поэтому «в обход X» считать отдельно не обязательно: достаточно вычесть число путей через X из общего числа путей.

Формула для двух вариантов задания: путей через X = (путей A→X) × (путей X→конец); путей в обход X = (всего путей A→конец) − (путей через X).

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

Схема дорог связывает города A, B, C, D, E, F, G одностороннего движения:

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

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

Как думать. Считаем отдельно число путей от A до D и число путей от D до G, а затем перемножаем — потому что каждый путь A→D можно свободно продолжить любым путём D→G.

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

Шаг 1. Пути из A в D (считаем как в обычном задании, только до D):

  • A = 1
  • B = A = 1 (дорога A→B)
  • C = A = 1 (дорога A→C)
  • D = B + C = 1 + 1 = 2

Шаг 2. Пути из D в G (считаем в обратную сторону, от D как от нового старта, только по вершинам, куда можно попасть из D):

  • D = 1 (новый старт)
  • F = D = 1 (дорога D→F; на E из D дороги нет)
  • G = F = 1 (дорога F→G; на G дороги от E тоже нет, так как E недостижим из D)

Итого путей D → G = 1.

Шаг 3. Перемножаем: путей через D = 2 × 1 = 2.

Проверка: если посчитать вообще все пути A→G (без условия) тем же способом последовательного подсчёта, получится 4 пути. Путей через D — 2, значит путей в обход D тоже 4 − 2 = 2. Это можно проверить, выписав все 4 пути вручную: A-B-D-F-G, A-C-D-F-G (через D), A-C-E-F-G, A-C-E-G (в обход D) — ровно 2 и 2.

Ответ: 2

Как решить в Python

edges = {
    'A': ['B', 'C'], 'B': ['D'], 'C': ['D', 'E'],
    'D': ['F'], 'E': ['F', 'G'], 'F': ['G'], 'G': [],
}
order = ['A', 'B', 'C', 'D', 'E', 'F', 'G']

def count_paths(start, edges, order):
    idx = order.index(start)
    sub_order = order[idx:]
    count = {v: 0 for v in sub_order}
    count[start] = 1
    for v in sub_order[1:]:
        count[v] = sum(count[u] for u in sub_order if v in edges.get(u, []))
    return count

a_to_d = count_paths('A', edges, order)['D']
d_to_g = count_paths('D', edges, order)['G']
print('через D:', a_to_d * d_to_g)  # 2

total = count_paths('A', edges, order)['G']
print('всего A->G:', total)          # 4
print('в обход D:', total - a_to_d * d_to_g)  # 2
Задание 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. Анализ информации в виде схем (графы), Информатика ОГЭ | скачать