Задачи python

Новости теперь и в Telegram-канале

25 февраля 2023 г.
    Новые задачи для тренировки 17 (И. Митин).
    Новые задачи для тренировки 23, 24, 25.
    Новые задачи для тренировки 23 (М. Шагитов).
    Новая задача для тренировки 27 (А. Рогов).

24 февраля 2023 г.
    Новые задачи для тренировки 25, 26 (А. Рогов).

23 февраля 2023 г.
    Изменено условие и ответ к задаче 26.94.

19 февраля 2023 г.
    Новая задача для тренировки 23 (М. Байрамгулов).

18 февраля 2023 г.
    Исправлен ответ к задаче 6.100.
    Новые задачи для тренировки 4, 14, 23 (И. Карпачев).
    Новые задачи для тренировки 3, 5 (И. Митин).

15 февраля 2023 г.
    Новая задача для тренировки 25 (Н. Сафронов).
    Исправлен ответ к задаче 24.215.

13 февраля 2023 г.
    Новые задачи для тренировки 23 (И. Карпачев).

Лицензионное соглашение

Все опубликованные ниже материалы для
подготовки к ЕГЭ по информатике могут быть свободно использованы
в некоммерческих целях при условии сохранения авторства.

Без письменного согласия автора ЗАПРЕЩАЕТСЯ:

  1. 1) публикация материалов в любой форме, в том числе размещение материалов на других Web-сайтах;
  2. 2) распространение неполных или измененных материалов;
  3. 3) включение материалов в сборники на любых носителях информации;
  4. 4) получение коммерческой выгоды от продажи или другого использования материалов.

Использование и скачивание материалов означает, что вы приняли условия этого лицензионного соглашения.

Изменения в ЕГЭ-2022 в сравнении с ЕГЭ-2021
01.09.2021

Комбинаторика и ее основные принципы

Очень часто приходится решать задачи, в которых надо посчитать количество возможных вариантов для той или иной ситуации. Например, сколько позиций может возникнуть на шахматной доске после первого хода обоих игроков? Сколько разных паролей длиною в десять символов можно записать, если ни один символ не использовать дважды? Сколько разнообразных комбинаций чисел может выпасть при игре в лотерею «6 из 49»? На все эти вопросы помогает ответить специальный раздел математики, называемый комбинаторикой. Почти всегда комбинаторную задачу можно сформулировать так, чтобы ее вопрос начинался словами «сколькими способами…».

Очевидно, что если в конечном множестве содержится n элементов, то есть ровно n способов выбрать один из них.

Пример. В классе 15 человек. Сколькими способами учитель может назначить одного из них ответственным за чистоту доски?

Ответ. Таких способов ровно 15.

В комбинаторике существует два основных правила. Первое из них называется правилом сложения.

Несмотря на формулировку, по сути это очень простое правило.

Пример. В магазине продается 14 телевизоров Panasonic и 17 телевизоров Sony. Петя хочет купить один телевизор. Сколько у него вариантов покупки?

Решение. По правилу сложения Петя может выбрать один из 14 + 17 = 31 телевизоров.

Ответ: 31 телевизор.

Особое значение имеет второе правило, которое называют правилом умножения.

Проиллюстрируем это правило.

Пример. В секции бадминтона 15 мальчиков и 20 девочек. Тренер должен отправить на соревнования смешанную пару. Сколько вариантов действий у него?

Решение. Тренер может составить 15•20= 300 разнополых пар из своих воспитанников.

Ответ: 300

Пример. Пете нужно купить технику для компьютера. В магазине продается 20 различных клавиатур, 25 моделей геймпадов и 30 компьютерных мышей. Купить надо по одному экземпляру каждого из этих устройств. Сколько вариантов покупки есть у него?

Решение. Сначала подсчитаем число возможных пар «клавиатура-геймпад». Их количество равно 20•25 = 500. Теперь составим «тройку» из одной из 500 пар и одной из 30 мышей. Число троек равно 500•30 = 15000.

Ответ: 15000

Правила сложения и умножения можно комбинировать.

Пример. Сколько слов не более чем из трех букв можно составить, используя алфавит, содержащий ровно 30 букв?

Решение. Очевидно, что слов из одной буквы можно составить ровно 30. Количество двухбуквенных слов равно количеству пар, которые можно составить из этих букв, то есть 30•30 = 900. Трехбуквенных слов можно составить 30•30•30 = 27000. Всего же слов длиною не более 3 букв будет

30 + 900 + 27000 = 27930

Ответ: 27930

Далее мы изучим основные понятия комбинаторики – перестановки, размещения, сочетания.

Перестановки с повторениями

До этого мы рассматривали случаи, когда все переставляемые объекты были различными. Однако порою некоторые из них не отличаются друг от друга. Пусть на полке надо расставить 3 книги, но две из них одинаковые. Сколько тогда существует перестановок? Общее число перестановок 3 книг составляет 3! = 6:

Здесь одинаковые книги отмечены как А и А1. Очевидно, что 1-ый и 2-ой варианты (А1АБ) и (АА1Б) на самом деле не отличаются друг от друга. В них отличается лишь порядок одинаковых книг А и А1. В первом случае за А1 следует А, а во втором, наоборот, за А следует А1. Тоже самое можно сказать про варианты 3 и 4, 5 и 6. Получается, что все возможные перестановки можно разбить на группы, в которых находятся «перестановки-дубликаты»:

А1АБ и АА1Б

А1БА и АБА1

БА1А и БАА1

В каждой группе находится ровно по два «дубликата». Почему именно по два? Это число равно количеству перестановок одинаковых книг. Так как одинаковых томов 2, а Р2 = 2, то в каждой группе по 2 «дубликата». Действительно, если бы мы «убрали» с полки все книги, кроме повторяющихся, то там осталось бы только 2 одинаковых тома, которые можно переставить двумя способами.

Для того чтобы найти количество «оригинальных» перестановок, надо их общее количество поделить на число дубликатов в каждой группе.

6:2 = 3

Пусть теперь надо расставить 4 книги, из которых 3 одинаковы. Обозначим тома как А, А1, А2 и Б. Всего можно записать 4! = 24 перестановки. Однако каждые 6 из них будут дублировать друг друга. То есть их можно разбить на группы, в каждой из которых будет 6 идентичных «дубликатов»:

1-ая группа: БАА1А2, БАА2А1, БА1АА2, БА1А2А, БА2АА1, БА2А1А

2-ая группа: АБА1А2, АБА2А1, А1БАА2, А1БА2А, А2БАА1, А2БА1А

3-ая группа: АА1БА2, АА2БА1, А1АБА2, А1А2БА, А2АБА1, А2А1БА

4-ая группа: АА1А2Б, АА2А1Б, А1АА2Б, А1А2АБ, А2АА1Б, А2А1АБ

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

Р43 = 4!/3! = 24/6 = 4

Для обозначения перестановок с повторениями используется запись

Рn(n1, n2, n3,… nk)

где n – общее количество объектов, а n1, n2, n3,… nk – количество одинаковых элементов. Например, в задаче с 4 книгами мы искали величину Р4(3, 1), потому что всего книг было 4, но они были разбиты на две группы, в одной из которых находилось 3 одинаковых тома (буквы А, А1, А2), а ещё одна книга (Б) составляла вторую группу. Мы заметили, что для вычисления числа перестановок с повторениями надо общее число перестановок делить на количество дублирующих перестановок. Формула в общем случае выглядит так:

Решение. Вася должен расставить 3 урока испанского и 4 урока английского, тогда n1 = 3, а n2 = 4. Общее количество уроков равно 3 + 4 = 7. Тогда

Ответ: 35

Обратите внимание, что для удобства при делении факториалов мы не вычисляли их сразу, а пытались сократить множители. Так как в ответе любой комбинаторной задачи получается целое число, то весь знаменатель дроби обязательно сократится с какими-нибудь множителями в числителе

Пример. У мамы есть 3 яблока, 2 банана и 1 апельсин. Эти фрукты она распределяет между 6 детьми. Сколькими способами она может это сделать, если каждый должен получить по фрукту?

Решение. Всего есть три группы фруктов. В первой находится 3 яблока, поэтому n1 = 3. Во второй группе 2 банана, поэтому n2 = 2. В третьей группе только 1 апельсин, поэтому nk = 1. Общее число фруктов равно 6. Используем формулу:

Ответ: 60

В знаменателе формулы для перестановок с повторениями мы записываем число объектов в каждой группе одинаковых предметов. Так, если переставляются 3 яблока, 2 банана и 1 апельсин, то в знаменателе мы пишем 3!•2!•1!. Но что будет, если в каждой группе будет находиться ровно один уникальный объект? Тогда мы запишем в знаменателе произведение единиц:

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

Теория графов

В переводе с греческого граф — «пишу», «описываю». В современном мире граф описывает отношения. И наоборот: любое отношение можно описать в виде графа.

Теория графов — обширный раздел дискретной математики, в котором системно изучают свойства графов.

Теория графов широко применяется в решении экономических и управленческих задач, в программировании, химии, конструировании и изучении электрических цепей, коммуникации, психологии, социологии, лингвистике и в других областях.

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

Давайте на примере.

Пусть множество A = {a1, a2, … an} — это множество людей, и каждый элемент отображен в виде точки. Множество B = {b1, b2, … bm} — множество связок (прямых, дуг или отрезков).

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

Число знакомых у одних людей может отличаться от числа знакомых у других людей, некоторые могут вовсе не быть знакомы (такие элементы будут точками, не соединёнными ни с какой другой). Так получился граф:

В данном случае точки — это вершины графа, а связки — рёбра графа.

Теория графов не учитывает конкретную природу множеств A и B. Существует большое количество разных задач, при решении которых можно временно забыть о содержании множеств и их элементов. Эта специфика не отражается на ходе решения задачи.

Например, вопрос в задаче стоит так: можно ли из точки A добраться до точки E, если двигаться только по соединяющим точки линиям. Когда задача решена, мы получаем решение, верное для любого содержания, которое можно смоделировать в виде графа.

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

Графом называется система объектов произвольной природы (вершин) и связок (ребер), соединяющих некоторые пары этих объектов.

Пусть V — (непустое) множество вершин, элементы v ∈ V — вершины. Граф G = G(V) с множеством вершин V есть некоторое семейство пар вида: e = (a, b), где a, b ∈ V, указывающих, какие вершины остаются соединёнными. Каждая пара e = (a, b) — ребро графа. Множество U — множество ребер e графа. Вершины a и b — концевые точки ребра e.

Широкое применение теории графов в компьютерных науках и информационных технологиях можно объяснить понятием графа как структуры данных. В компьютерных науках и информационных технологиях граф можно описать, как нелинейную структуру данных.

Линейные структуры данных особенны тем, что связывают элементы отношениями по типу «простого соседства». Линейными структурами данных можно назвать массивы, таблицы, списки, очереди, стеки, строки. В нелинейных структурах данных элементы располагаются на различных уровнях иерархии и подразделяются на три вида: исходные, порожденные и подобные.

Курсы обучения математике помогут подтянуть оценки, подготовиться к контрольным, ВПР и экзаменам.

Размещения

Пусть в футбольном турнире участвуют 6 команд. Нам предлагают угадать те команды, которые займут призовые места (то есть первые три места). Сколько вариантов таких троек существует?

Сначала запишем ту команду, которая выиграет турнир. Здесь есть шесть вариантов, по количеству участвующих команд. Запишем эти варианты:

Далее выберем один из вариантов и для него укажем серебряного призера соревнований. Здесь есть только 5 вариантов, ведь 1 из 6 команд уже записана на 1-ом месте:

Такую пятерку можно записать для каждого из шести вариантов того, кто станет чемпионом. Получается, что всего есть 6•5 = 30 пар «чемпион – серебряный призер». Наконец, для одной такой пары можно записать 4 варианта того, кто окажется третьим (две команды писать нельзя, так как они уже записаны на первых двух строчках):

Для каждой пары можно записать 4 тройки призеров. Так как число пар «чемпион – вице-чемпион» равно 6•5 = 30, то число троек составит 6•5•4 = 120.

В данном случае из некоторого множества команд мы выбрали несколько и расположили их в каком-то порядке. То есть мы выбрали упорядоченное множество. В комбинаторике оно называется размещением.

Если общее число команд обозначить как n (в этом примере n = 6), а количество упорядочиваемых команд равно k, то количество таких размещений в комбинаторике обозначается как

В примере с командами количество размещений равнялось 120:

Читается эта запись как «число размещений из 6 по 3 равно 120».

Для нахождения этого числа мы перемножили k (3)множителей. Первый из них был равен n(6), так как каждая из n команд могла занять первая место. Второй множитель был равен (n– 1), так как после определения чемпиона мы могли поставить на вторую позицию одну из (n– 1) команд. Третий множитель был равен (n– 2). По этой логике каждый следующий множитель будет меньше предыдущего на единицу. Например, чтобы вычислить число размещений из 7 по 4, надо перемножить 4 множителя, первый из которых равен 7, а каждый следующий меньше на 1:

Однако математически удобнее представлять это произведение как отношение двух факториалов. Для этого умножим количество размещений на дробь 3!/3!, равную единице. Естественно, число размещений из-за умножения на единицу не меняется:

Число 3 в данном случае можно получить, если из 7 вычесть 4. В общем случае из числа n надо вычесть число k. Тогда формула для вычисления количества размещений примет вид:

Пример. В программе 8 «А» класса 12 различных предметов. В понедельник проводится 5 занятий подряд. Сколько существует вариантов расписаний для класса, если в течение понедельника нельзя проводить два одинаковых урока?

Решение. Для составления расписания нужно выбрать 5 предметов и расставить их по порядку. Поэтому нам необходимо найти размещение из 12 по 5:

Ответ: 95040

Пример. В вагоне 10 свободных мест. В него зашло 6 пассажиров. Сколькими способами они могут расположиться в вагоне?

Решение. Из десяти мест надо выбрать шесть и указать для каждого, какому пассажиру оно соответствует. То есть каждый вариант рассадки пассажиров – это размещение из 10 по 6. Найдем их количество:

Ответ: 151200

Заметим, что перестановка – это частный случай размещения, когда k = n. Действительно, если нам надо указать тройку призеров турнира, в котором участвуют 6 команд, то мы указываем размещение из 6 по 3. Но если мы указываем для каждой из 6 команд, какое место она займет в чемпионате, то это размещение из 6 по 6. С другой стороны, это расстановка одновременно является и перестановкой 6 команд. Убедимся, что в этом частном случае формула для подсчета количества размещений покажет тот же результат, что и формула для перестановок

Для примера с 6 командами это будет выглядеть так:

Здесь мы использовали тот факт, что факториал нуля принимается равным единице. Данное рассуждение можно, наоборот, использовать для того, чтобы доказать, что факториал нуля – это единица.

Сочетания

Выбирая размещение, мы должны были выбрать из множества несколько объектов и упорядочить их. В частности, мы выбирали три команды из шести и указывали, какая из них будет первой, какая второй, а какая третьей. Поэтому размещения «Локомотив, Зенит, Краснодар» и «Локомотив, Краснодар, Зенит» отличались друг от друга.

Однако порою этот порядок не имеет значения. Так, существует известная лотерея, где предлагается угадать 7 чисел из 49, которые выпадут во время розыгрыша из барабана. При этом порядок их выпадения не играет никакой роли. Игрок, выбирая эти 7 чисел, с точки зрения математики формирует сочетание из 49 по 7.

Количество возможных сочетаний из n по k обозначается буквой С:

Для вычисления количеств сочетаний из n по k сначала найдем количество аналогичных размещений. Оно вычисляется по формуле:

Однако ясно, что, как и в случае с перестановками с повторениями, некоторые сочетания мы посчитали несколько раз. Вернемся к примеру с командами. Если мы выбрали команды Л (Локомотив) , З (Зенит) и К (Краснодар), то мы можем составить ровно 3! = 6 размещений из них:

ЛЗК

ЛКЗ

ЗЛК

ЗКЛ

КЛЗ

КЗЛ

Однако все они соответствуют только одному сочетании – ЛКЗ. Таким образом, считая количество размещений, мы посчитали каждое сочетание не один, а 3! раз. Поэтому для нахождения количества сочетаний в комбинаторике надо поделить число размещений на число перестановок k элементов:

Эта формула связывает важнейшие понятия комбинаторики – перестановки, сочетания и размещения. Подставим в неё формулы для размещений и перестановок и получим:

Пример. Сколько троек призеров турнира можно составить, выбирая три футбольные команды из шести?

Решение. Посчитаем число сочетаний из 6 по 3:

Ответ: 20

Пример. Сколько комбинаций чисел может составить игрок, играющий в лотереи «5 из 36», «6 из 45», «7 из 49»?

Решение. В каждом из этих случаев игрок выбирает сочетание нескольких чисел. Посчитаем их число:

Ответ: 376992; 8145060; 85900584

Пример. На плоскости отмечены 8 точек, причем никакие три из них не лежат на одной прямой. Сколько различных прямых можно провести через них? Сколько треугольников и четырехугольников можно построить с вершинами в этих точках?

Решение. Для того чтобы провести прямую, достаточно выбрать любые 2 точки из 8. Общее количество прямых будет равно числу сочетаний из 8 по 2:

Заметим принципиальную важность того условия, что никакие три точки не лежат на одной прямой. Оно гарантирует, что при выборе двух различных точек мы будем получать различные прямые

Если бы, например, точки АВС лежали бы на одной прямой, то при выборе сочетаний АВ, ВС и АС мы получали бы одну и ту же прямую:

Это же условие гарантирует, что, выбрав любые 3 и 8 точек, мы сможем построить треугольник с вершинами в этих точках, а выбрав 4 точки, получим четырехугольник. Поэтому для подсчета количества треугольников и четырехугольников следует искать число сочетаний по 3 и 4:

Ответ: 28 прямых, 56 треугольников и 70 четырехугольников.

Пример. В одной урне находится 10 различных шаров с номерами от 0 до 9, а в другой – 8 различных шаров с первыми восемью буквами алфавита. По условиям лотереи ведущий вытаскивает из первой урны два шара с числами, а из второй – три шара с буквами. Для победы в лотерее надо угадать выпавшие шары. Сколько комбинаций шаров может выпасть в игре?

Решение. Посчитаем отдельно, сколькими способами можно выбрать 2 шара с цифрами из 10 и 3 шара с буквами из 8:

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

56•45 = 2520

Ответ: 2520

Заметим, что выбирая, например, сочетание из 49 по 7, мы одновременно выбираем и сочетание из 49 по 49 – 7 = 42. Действительно, игрок, обводящий в кружок в лотерейном билете свои 7 счастливых чисел, одновременно и определяет остальные 42 числа, какие числа он НЕ считает счастливыми. Для наглядности запишем число сочетаний в обоих случаях:

Получили одну и ту же дробь, в которой отличается лишь последовательность множителей в знаменателе. Можно показать, что и в общем случае число сочетаний из n по k совпадает с количеством сочетаний из n по (n– k):

Алгоритмизация и основы программирования

5: выполнение и анализ простых алгоритмов
18.02.2023
Решения заданий 5 (Python)
18.02.2023
6: анализ программ для исполнителей с циклами
04.02.2023
Решения заданий 6 (Python)
28.01.2023
12: выполнение алгоритмов для исполнителя
04.02.2023
Решения заданий 12 (Pascal, Python)
04.02.2023
Программа для решения задач с Редактором (Р. Либеров и А.Л. Наймушин)
15.05.2016
16: рекурсивные алгоритмы
25.02.2023
Решения заданий 16 (Pascal, Python)
25.02.2023
17: обработка последовательности чисел
25.02.2023
Файлы к заданиям 17
25.02.2023
Решения заданий 17 (Pascal, Python)
25.02.2023
18: динамическое программирование
04.02.2023
Файлы к заданиям 18
04.02.2023
19-21: теория игр
11.02.2023
Решения заданий 19-21 (Python)
11.02.2023
22: выполнение параллельных процессов
11.02.2023
Файлы к заданиям 22
11.02.2023
Решения заданий 22
26.12.2022
23: перебор вариантов, динамическое программирование
25.02.2023
Решения заданий 23 (Python)
25.02.2023
Программа-тренажёр для решения задач 23 (динамическое программирование)
18.02.2018
Онлайн-решатель задач 23 (динамическое программирование) (Б. Власенко)
07.01.2020
24: обработка символьных строк
25.02.2023
Файлы к заданиям 24
25.02.2023
Решения заданий 24 (Python, Pascal)
25.02.2023
25: обработка целых чисел, делители числа
25.02.2023
Решения всех заданий 25 (Python, Pascal)
25.02.2023
26: обработка массива целых чисел из файла
24.02.2023
Файлы к заданиям 26
24.02.2023
Решения заданий 26 (Python, Паскаль)
24.02.2023
27: обработка последовательностей
01.01.2023
Файлы и решения к заданиям 27
01.01.2023
27: сборник задач 2020 г.
09.07.2020

Ориентированные и неориентированные графы

Графы, в которых все ребра являются звеньями, то есть порядок двух концов ребра графа не существенен, называются неориентированными.

Графы, в которых все ребра являются дугами, то есть порядок двух концов ребра графа существенен, называются ориентированными графами или орграфами.

Неориентированный граф можно представить в виде ориентированного графа, если каждое его звено заменить на две дуги с противоположным направлением.

Если граф содержит петли — это обстоятельство важно озвучивать и добавлять к основной характеристике графа уточнение «с петлями». Если граф не содержит петель, то добавляют «без петель»

Смешанным называют граф, в котором есть ребра хотя бы двух из упомянутых трех разновидностей (звенья, дуги, петли).

Пустой граф — это тот, что состоит только из голых вершин.

Мультиграфом — такой граф, в котором пары вершин соединены более, чем одним ребром. То есть есть кратные рёбра, но нет петель.

Граф без дуг, то есть неориентированный, без петель и кратных ребер называется обыкновенным.

Граф называют полным, если он содержит все возможные для этого типа рёбра при неизменном множестве вершин. Так, в полном обыкновенном графе каждая пара различных вершин соединена ровно одним звеном.

Двудольный граф

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

Например, полный двудольный граф состоит из двух множеств вершин и из всевозможных звеньев, которые соединяют вершины одного множества с вершинами другого множества.

Актуальные публикации

  • В.С. Попов.

    Новая задача ЕГЭ по информатике № 22: решение с помощью графа
    // Потенциал: Математика, Физика, Информатика, № 8, 2022.

  • К.Ю. Поляков.

    Особенности решения задач 25 и 26 в компьютерном
    ЕГЭ по информатике. Материалы вебинара для учителей г. Сочи, 24.03.2021.

  • К.Ю. Поляков.

    Динамическое программирование в задачах обработки последовательностей ЕГЭ по информатике.

  • К.Ю. Поляков.

    Задачи на анализ логических выражений в ЕГЭ по информатике. //
    Информатика в школе, № 9, 2019, с. 29–35.

  • А.Н. Сидоров

    Задача 18 ЕГЭ по информатике: логическое выражение с делимостью.

  • Н.Л. Конина

    Задачи 18 с делимостью.

  • Н.И. Герасименко

    Задачи 18 с делителями в КИМ ЕГЭ по информатике.

  • К.Ю. Поляков

    Линейное (и нелинейное) программирование в задаче 18 ЕГЭ по информатике (презентация).

  • К.Ю. Поляков,

    Битовые операции в задаче 18 КИМ ЕГЭ по информатике. Часть 2.

  • К.Ю. Поляков,

    Множества и логика в задачах ЕГЭ //
    Информатика, № 10, 2015, с. 38-42.

  • Е.А. Мирончик.

    Алгебра предикатов и построение геометрических моделей на ЕГЭ по информатике //
    Информатика, № 3, 2019, с. 40-47.

См. также полный список статей.

Путь и цепь в графе

Путем или цепью в графе называют конечную последовательность вершин, в которой каждая вершина (кроме последней) соединена со следующей в последовательности вершин ребром.

Циклом называют путь, в котором первая и последняя вершины совпадают.

Путь или цикл называют простым, если ребра в нем не повторяются.

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

Можно рассмотреть такое подмножество вершин графа, что каждые две вершины этого подмножества соединены путем, а никакая другая вершина не соединена ни с какой вершиной этого подмножества.

Каждое такое подмножество, вместе со всеми ребрами исходного графа, соединяющими вершины этого подмножества, называется компонентой связности.

Один и тот же граф можно нарисовать разными способами. Вот, например, два изображения одного и того же графа, которые различаются кривизной:

Два графа называются изоморфными, если у них поровну вершин. При этом вершины каждого графа можно занумеровать числами так, чтобы вершины первого графа были соединены ребром тогда и только тогда, когда соединены ребром соответствующие занумерованные теми же числами вершины второго графа.

Граф H, множество вершин V’ которого является подмножеством вершин V данного графа G и множество рёбер которого является подмножеством рёбер графа G соединяющими вершины из V’ называется подграфом графа G.

Что это такое?

Здесь представлены материалы для подготовки к ЕГЭ по информатике.
В отличие от известной литературы, для большинства задач из демо-вариантов ЕГЭ
сравниваются несколько способов решения,
анализируются их достоинства и недостатки, возможные проблемы и
«ловушки». Приведены рекомендации, позволяющие выбрать
эффективные методы решения каждой конкретной задачи.

Автор признателен
О.А. Тузовой (г. Санкт-Петербург) за обсуждение
этих материалов и конструктивную критику. Спасибо всем, кто присылал и
присылает мне замечания, предложения, сообщения об опечатках и неточностях.

Особая благодарность Н.Н. Паньгиной (г. Сосновый Бор) за
взаимовыгодное сотрудничество и разностороннюю поддержку проекта.

Автор будет благодарен за новые отзывы по поводу представленных
здесь материалов для подготовки к ЕГЭ по информатике.
Если вы заметили ошибку или у вас просто есть что
сказать по существу вопроса, .

Основные понятия теории графов

Граф — это геометрическая фигура, которая состоит из точек и линий, которые их соединяют. Точки называют вершинами графа, а линии — ребрами.

  • Два ребра называются смежными, если у них есть общая вершина.
  • Два ребра называются кратными, если они соединяют одну и ту же пару вершин.
  • Ребро называется петлей, если его концы совпадают.
  • Степенью вершины называют количество ребер, для которых она является концевой (при этом петли считают дважды).
  • Вершина называется изолированной, если она не является концом ни для одного ребра.
  • Вершина называется висячей, если из неё выходит ровно одно ребро.
  • Граф без кратных ребер и петель называется обыкновенным.

Лемма о рукопожатиях

В любом графе сумма степеней всех вершин равна удвоенному числу ребер.

Доказательство леммы о рукопожатиях

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

Если же ребро является петлей — при подсчете суммы степеней вершин мы также учтем его дважды (по определению степени вершины).

Из леммы о рукопожатиях следует: в любом графе число вершин нечетной степени — четно.

Пример 1. В классе 30 человек. Может ли быть так, что у 9 из них есть 3 друга в этом классе, у 11 — 4 друга, а у 10 — 5 друзей? Учесть, что дружбы взаимные.

Как рассуждаем:

Если бы это было возможно, то можно было бы нарисовать граф с 30 вершинами, 9 из которых имели бы степень 3, 11 — со степенью 4, 10 — со степенью 5. Однако у такого графа 19 нечетных вершин, что противоречит следствию из леммы о рукопожатиях.

Пример 2. Каждый из 102 учеников одной школы знаком не менее чем с 68 другими. Доказать, что среди них найдутся четверо ребят с одинаковым числом знакомых.

Как рассуждаем:

Сначала предположим противоположное. Тогда для каждого числа от 68 до 101 есть не более трех человек с таким числом знакомых. С другой стороны, у нас есть ровно 34 натуральных числа, начиная с 68 и заканчивая 101, а 102 = 34 * 3.

Это значит, что для каждого числа от 68 до 101 есть ровно три человека, имеющих такое число знакомых. Но тогда количество людей, имеющих нечетное число знакомых, нечетно. Противоречие.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Ставь шахматы
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: