Задание 9 ОГЭ по информатике: как считать пути в графе
Научитесь считать маршруты по направлению стрелок. Пройдите расчёт на схеме и решите первую задачу. Ниже — разбор обязательной и запрещённой вершины и ещё четыре упражнения.
Попробовать одну задачуСумма приходит по стрелкам.
У старта — 1. В следующей вершине складывайте числа у всех её предшественников. Для графа без циклов идите от начала к концу.
Что записать в ответВ ответе — количество маршрутов. Направление стрелок обязательно; число дорог само по себе не является числом путей.
Посчитайте пути из A в D
Стрелки: A→B, A→C, B→C, B→D, C→D.
Следующий шаг подсветит входящие стрелки и покажет, какие числа складываем.
Весь расчёт без интерактива
A = 1; B = 1; C = 1 + 1 = 2; D = 1 + 2 = 3. Пути: A–B–D, A–C–D, A–B–C–D.
Попробуйте одну задачу
Без регистрации. Если не получится — проверка подскажет, что повторить.
Ответ и объяснение
2. A–C и A–B–C: всего 2.
Проверьте приём на новой задаче в каталоге.
Сохранить и поделиться разбором
Материал открыт без регистрации: схема, объяснение и самопроверка.
Для преподавателей и сообществ →Главный приём: складываем входящие пути
Рассматриваем ориентированный граф без циклов: двигаться можно только по стрелкам, вернуться по кругу нельзя. У старта ставим 1 — один способ начать путь. Для каждой следующей вершины складываем числа у всех вершин, из которых в неё идут стрелки.
Обрабатывайте вершину только после всех её предшественников. Расположение на рисунке помогает, но порядок определяют именно стрелки.
Разбор на схеме
- A: 1. Это старт.
- B: 1. В B можно прийти только из A.
- C: 1 + 1 = 2. В C приходим из A или из B.
- D: 1 + 2 = 3. В D приходим из B или из C.
Ответ: 3 пути. Для проверки их можно выписать: A–B–D, A–C–D, A–B–C–D.
Если нужно пройти через заданную вершину
В графе выше найдём пути из A в D, проходящие через B.
- Считаем пути до B: 1.
- Считаем пути из B в D: 2 — напрямую и через C.
- Соединяем первую часть со второй: 1 × 2 = 2 пути.
Это приём для ориентированного графа без циклов. Каждый путь до обязательной вершины соединяется с каждым путём после неё.
Если вершина запрещена: исключите её вместе с прилегающими стрелками. Без B остаётся A → C → D — один путь. Проверка: всего 3 пути; через B — 2; без B — 3 − 2 = 1.
Ошибки, которые легко предотвратить
- У старта пишите 1, а не 0: иначе все последующие суммы обнулятся.
- Считайте только входящие стрелки. Линия в обратном направлении не даёт нового пути.
- Пересечение линий без обозначенной вершины не является остановкой.
- В недостижимой вершине будет 0 путей. Не присваивайте единицу каждой вершине.
Удобная привычка: сначала отметить старт и финиш, затем подписывать маленькие числа прямо у вершин. Не смешивайте число путей с длиной самого короткого пути — это разные вопросы.
Более длинный граф: считаем по таблице
Пусть стрелки заданы так: A → B, C; B → D, E; C → D; D → E, F; E → F. Циклов нет. Составим таблицу по входящим стрелкам.
| Вершина | Расчёт | Путей из A |
|---|---|---|
| A | Старт | 1 |
| B | Из A | 1 |
| C | Из A | 1 |
| D | Из B и C: 1 + 1 | 2 |
| E | Из B и D: 1 + 2 | 3 |
| F | Из D и E: 2 + 3 | 5 |
Ответ: 5 путей. Пять входящих в разные вершины стрелок сами по себе не означают пять маршрутов: считаются способы добраться до каждой вершины, а не количество линий.
Запрещённая вершина и проверка кодом
В том же графе запретим проход через D. У D будет 0 путей; из B в E остаётся прямой переход. Поэтому E = 1, F = 1: остаётся только A → B → E → F.
edges = {'A': ['B', 'C'], 'B': ['D', 'E'],
'C': ['D'], 'D': ['E', 'F'],
'E': ['F'], 'F': []}
ways = {v: 0 for v in edges}
ways['A'] = 1
blocked = 'D'
for v in ['A', 'B', 'C', 'D', 'E', 'F']:
if v == blocked:
continue
for nxt in edges[v]:
if nxt != blocked:
ways[nxt] += ways[v]
print(ways['F']) # 1Код нужен для проверки собственного рассуждения. Вершины здесь уже перечислены в подходящем порядке: все стрелки ведут вперёд. Для другого графа алфавитный порядок может не подойти. Если убрать запрет, программа посчитает все 5 путей.
Когда складывать, а когда умножать?
| Что спрашивают | Как считать |
|---|---|
| Все пути до вершины | Сложить числа у всех предшественников. |
| Пути через B | Пути до B × пути от B до финиша. |
| Пути без B | Исключить B и пересчитать; либо вычесть пути через B из общего числа. |
Что делать, если нужно пройти через две вершины?
Если путь должен идти A → B → C → D, считайте три участка: число путей A → B умножьте на число путей B → C и затем C → D. Сначала проверьте, что нужный порядок возможен по стрелкам. Если между B и C пути нет, результат равен нулю.
Пересечение линий — это новая вершина?
Нет, если на рисунке она не обозначена как вершина. Переходить с одной стрелки на другую в месте простого пересечения нельзя.
Можно просто посчитать нарисованные стрелки?
Нет. Стрелка — один переход между вершинами, а путь — последовательность переходов от старта до финиша. Несколько путей могут использовать одну стрелку.
Все правила в этом разборе относятся к графам без циклов. Авторские примеры помогают освоить приём; состав экзамена проверяйте по материалам ФИПИ нужного года.
Сохраните алгоритм решения
Открыть памятку «Пути в графе» для печати →
Схема, три правила и две задачи для самостоятельной проверки. Затем можно решить задания 9 ОГЭ или посмотреть как проходят занятия по ОГЭ с Никитой Саралашвили.
Перенесите способ на экзаменационный граф
Теперь попробуйте схему с семью вершинами из демоверсии. Сначала подпишите количество путей у начала, затем считайте вершины по направлению стрелок.
- Проверьте, что у вершины уже известны все входящие значения.
- Сложите их и запишите число рядом с вершиной.
- В конце проверьте, не пропущена ли прямая дорога к финишу.
Решить задание 9 ОГЭ из демоверсии →
Если ответ не совпал, сравните промежуточные значения. Пересчитывать весь граф обычно не требуется.
Закрепите приём на новых задачах
Сначала решите самостоятельно. Затем проверьте ответ или откройте объяснение.
Ответ и объяснение
1. После исключения B остаётся только A–C–D.
Ответ и объяснение
7. Входящие пути складываются: 3 + 4 = 7.
Ответ и объяснение
4. До D идут 2 пути; из D в F — 2 (напрямую или через E). Получаем 2 × 2 = 4.
Ответ и объяснение
2. Остаются A–B–D–F и A–C–D–F. После исключения E к F ведут два пути через D.