Дискретная математика: шпаргалка-пакет

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

Новые задачиНазад к курсу

В окне печати выберите «Сохранить как PDF», чтобы сохранить копию на своём устройстве.

1Формулы и методы

Логика высказываний и доказательства

Строки таблицы истинности
2ⁿ
Импликация
p → q ≡ ¬p ∨ q ≡ ¬q → ¬p
Отрицание импликации
¬(p → q) ≡ p ∧ ¬q
Эквиваленция
p ↔ q ≡ (p → q) ∧ (q → p)
Законы де Моргана
¬(p ∧ q) ≡ ¬p ∨ ¬q, ¬(p ∨ q) ≡ ¬p ∧ ¬q
Законы дистрибутивности
p ∨ (q ∧ r) ≡ (p ∨ q) ∧ (p ∨ r), p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r)
Отрицание кванторов
¬∀x P(x) ≡ ∃x ¬P(x), ¬∃x P(x) ≡ ∀x ¬P(x)
Modus ponens, modus tollens
p → q, p ⊢ q; p → q, ¬q ⊢ ¬p

Метод

  1. Подсчитайте различные переменные: в таблице истинности 2ⁿ строк, и начинается она со строки, где все переменные равны 1.
  2. Отведите каждой подформуле отдельный столбец и заполняйте столбцы изнутри наружу.
  3. Применяйте правило каждой связки: → равно 0 только для 1 → 0, ↔ равно 1, когда обе части совпадают.
  4. Для эквивалентностей сравнивайте последние столбцы строка за строкой; для рассуждения смотрите только на строки, в которых все посылки равны 1.
  5. Чтобы отрицать высказывание с квантором, переносите ¬ внутрь, меняйте ∀ и ∃ местами и отрицайте внутреннюю формулу.

Множества, отношения и функции

Два множества
|A ∪ B| = |A| + |B| − |A ∩ B|
Три множества
|A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C|
Разность и дополнение
A − B = A ∩ B′, |A′| = |U| − |A|
Булеан и произведение
|𝒫(A)| = 2|A|, |A × B| = |A|·|B|
Подмножества из k элементов
C(n, k) = n!/(k!(n − k)!)
Функции A → B
nᵐ; injective n!/(n − m)!; surjective Σ (−1)ᵏ C(n, k)(n − k)ᵐ
Отношения на n элементах
2n²; reflexive 2n² − n; symmetric 2n(n+1)/2
Композиция
(g ∘ f)(x) = g(f(x))

Метод

  1. Нарисуйте диаграмму Венна и по областям решите, что относится к множеству, заданному выражением.
  2. В задачах на подсчёт заполняйте области от центра к краям: сначала все множества, затем пары, затем отдельные множества, затем внешнюю область.
  3. Используйте формулу включений и исключений как проверку: |A ∪ B| = |A| + |B| − |A ∩ B|.
  4. Для отношения проверяйте каждое свойство на каждой паре и приводите один контрпример, если свойство не выполняется.
  5. Для функции посчитайте стрелки, приходящие в каждый элемент B: не более одной означает инъективность, не менее одной — сюръективность.

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

Лемма о рукопожатиях
Σ deg(v) = 2|E|
Полные графы
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
Регулярный граф
|E| = n·k/2
Дерево и лес
|E| = n − 1, |E| = n − c
Листья дерева
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
Эйлер
цикл: все степени чётные; путь: ровно две нечётные степени
Гамильтоновы циклы в Kn
(n − 1)!/2
Обновление в алгоритме Дейкстры
d(v) = min(d(v), d(u) + w(u, v))
Маршруты длины L
(Mᴸ)ij

Метод

  1. Запишите степень каждой вершины; сумма степеней равна удвоенному числу рёбер.
  2. В задачах об эйлеровых путях проверьте, что граф связный, и посчитайте вершины нечётной степени.
  3. Для деревьев используйте n − 1 ребро и лемму о рукопожатиях.
  4. В алгоритме Дейкстры ведите таблицу предварительных расстояний и на каждом шаге фиксируйте нефиксированную вершину с наименьшим расстоянием.
  5. Для минимального остовного дерева отсортируйте рёбра по весу и пропускайте каждое ребро, замыкающее цикл (Краскал), либо растите одно дерево из начальной вершины (Прим).

Теория чисел и модульная арифметика

Деление с остатком
a = q·n + r, 0 ≤ r < n
Евклид
gcd(a, b) = gcd(b, a mod b)
Наименьшее общее кратное
lcm(a, b) = a·b/gcd(a, b)
Обратная матрица
a·a⁻¹ ≡ 1 (mod n), gcd(a, n) = 1
Линейное сравнение
a·x ≡ b → x ≡ a⁻¹·b (mod n)
Функция Эйлера
φ(n) = n·∏(1 − 1/p), φ(pᵏ) = pᵏ − pᵏ⁻¹
Ферма
aᵖ⁻¹ ≡ 1 (mod p)
RSA
n = pq, φ = (p − 1)(q − 1), d = e⁻¹ mod φ, c = mᵉ mod n, m = cᵈ mod n

Метод

  1. Сначала приведите каждое число по модулю n; остатки лежат от 0 до n − 1.
  2. Для НОД делите с остатком по алгоритму Евклида; последний ненулевой остаток и есть НОД.
  3. Для обратного элемента запустите расширенный алгоритм и возьмите коэффициент при a; если он отрицательный, прибавьте n.
  4. Решайте a·x ≡ b умножением на a⁻¹; два сравнения объединяйте, записывая x = r₁ + m₁k.
  5. Для степеней запишите показатель в двоичном виде и многократно возводите в квадрат; в RSA d = e⁻¹ mod φ(n), где φ(n) = (p − 1)(q − 1).

2Тренировочные задачи

1.Логика высказываний и доказательстваСредняя
pqr¬(¬q → (p ↔ q))r ∧ p¬(¬q → (p ↔ q)) ∧ (r ∧ p)111?110?101?100?011?010?001?000?

В скольких из 8 строк таблицы истинности ¬(¬q → (p ↔ q)) ∧ (r ∧ p) истинно? Обозначим это число N.

¬(¬q → (p ↔ q)) ∧ (r ∧ p)
N =
2.Логика высказываний и доказательстваСложная
∀x ¬P(x)∀x P(x)∃x ¬P(x)∃x P(x)

Какое утверждение эквивалентно ¬∃x P(x), если отрицание перенесено полностью внутрь? Нажмите на него.

¬∃x P(x)
  1. 1∀x ¬P(x)
  2. 2∀x P(x)
  3. 3∃x ¬P(x)
  4. 4∃x P(x)
3.Множества, отношения и функцииСредняя
UMPC

Из 43 студентов первого курса 16 сдали математику (M), 14 — физику (P) и 24 — химию (C). 6 сдали M и P, 10 сдали M и C, 8 сдали P и C, а 3 сдали все три. Сколько человек входят ровно в одно из трёх множеств? Обозначим это число n.

|U| = 43
n =
4.Множества, отношения и функцииСложная
x12345f(x)54231

Биекция f на {1, 2, 3, 4, 5} задана таблицей. Найдите f−1(2).

f: 1 ↦ 5, 2 ↦ 4, 3 ↦ 2, 4 ↦ 3, 5 ↦ 1
f−1(2) =
5.Теория графовСредняя
ABCDEFЭйлеров циклЭйлеров путь, не циклни то, ни другое

Есть ли в связном графе эйлеров цикл, эйлеров путь, не являющийся циклом, или ни то ни другое? Нажмите на ваш ответ.

|V| = 6|E| = 7
  1. 1Эйлеров цикл
  2. 2Эйлеров путь, не цикл
  3. 3ни то, ни другое
6.Теория графовСложная
115133152086719ABCDEFG

Алгоритм Прима строит минимальное остовное дерево, начиная с вершины B. Нажмите на ребро, которое он добавляет под номером 2.

начало: Bk = 2
  1. 1ребро AB
  2. 2ребро AC
  3. 3ребро BC
  4. 4ребро CE
  5. 5ребро DE
  6. 6ребро DF
  7. 7ребро EF
  8. 8ребро GB
  9. 9ребро GC
  10. 10ребро GD
7.Теория чисел и модульная арифметикаСредняя

Найдите наименьшее положительное целое x, для которого x ≡ 5 (mod 7) и x ≡ 4 (mod 9).

x ≡ 5 (mod 7)x ≡ 4 (mod 9)
x =
8.Теория чисел и модульная арифметикаСложная

71 — простое число. Используйте малую теорему Ферма, чтобы найти 430500 mod 71.

p = 71k = 30500
430500 mod 71 =

3Растворы

1.Логика высказываний и доказательства

Ответ: N = 1

Таблицы истинности: у формулы с n различными переменными 2ⁿ строк, по одной для каждой комбинации значений истинности (1 = истина, 0 = ложь). Работайте изнутри наружу и отводите каждой подформуле отдельный столбец. ¬a меняет значение на противоположное; a ∧ b равно 1 только тогда, когда оба равны 1; a ∨ b равно 0 только тогда, когда оба равны 0; a → b равно 0 только при a = 1 и b = 0; a ↔ b равно 1, когда обе части равны.

Таблица истинности по строкам

p = 1, q = 1, r = 1: ¬q = 0, p ↔ q = 1, ¬q → (p ↔ q) = 1, ¬(¬q → (p ↔ q)) = 0, r ∧ p = 1, ¬(¬q → (p ↔ q)) ∧ (r ∧ p) = 0
p = 1, q = 1, r = 0: ¬q = 0, p ↔ q = 1, ¬q → (p ↔ q) = 1, ¬(¬q → (p ↔ q)) = 0, r ∧ p = 0, ¬(¬q → (p ↔ q)) ∧ (r ∧ p) = 0
p = 1, q = 0, r = 1: ¬q = 1, p ↔ q = 0, ¬q → (p ↔ q) = 0, ¬(¬q → (p ↔ q)) = 1, r ∧ p = 1, ¬(¬q → (p ↔ q)) ∧ (r ∧ p) = 1
p = 1, q = 0, r = 0: ¬q = 1, p ↔ q = 0, ¬q → (p ↔ q) = 0, ¬(¬q → (p ↔ q)) = 1, r ∧ p = 0, ¬(¬q → (p ↔ q)) ∧ (r ∧ p) = 0
p = 0, q = 1, r = 1: ¬q = 0, p ↔ q = 0, ¬q → (p ↔ q) = 1, ¬(¬q → (p ↔ q)) = 0, r ∧ p = 0, ¬(¬q → (p ↔ q)) ∧ (r ∧ p) = 0
p = 0, q = 1, r = 0: ¬q = 0, p ↔ q = 0, ¬q → (p ↔ q) = 1, ¬(¬q → (p ↔ q)) = 0, r ∧ p = 0, ¬(¬q → (p ↔ q)) ∧ (r ∧ p) = 0
p = 0, q = 0, r = 1: ¬q = 1, p ↔ q = 1, ¬q → (p ↔ q) = 1, ¬(¬q → (p ↔ q)) = 0, r ∧ p = 0, ¬(¬q → (p ↔ q)) ∧ (r ∧ p) = 0
p = 0, q = 0, r = 0: ¬q = 1, p ↔ q = 1, ¬q → (p ↔ q) = 1, ¬(¬q → (p ↔ q)) = 0, r ∧ p = 0, ¬(¬q → (p ↔ q)) ∧ (r ∧ p) = 0

Посчитайте строки со значением 1

¬(¬q → (p ↔ q)) ∧ (r ∧ p): 0, 0, 1, 0, 0, 0, 0, 0
N = 1

Ответ

N = 1
2.Логика высказываний и доказательства

Ответ: ∀x ¬P(x)

Кванторы и рассуждения: ¬∀x P(x) ≡ ∃x ¬P(x) и ¬∃x P(x) ≡ ∀x ¬P(x). Переносите отрицание внутрь, меняйте каждый квантор, через который оно проходит, и отрицайте внутреннюю формулу по законам логики высказываний, например ¬(a → b) ≡ a ∧ ¬b. Рассуждение правильно, если вывод равен 1 в каждой строке, где все посылки равны 1. Одной строки с истинными посылками и ложным выводом достаточно, чтобы получить контрпример и показать, что рассуждение неправильно.

Перенесите отрицание внутрь

¬∃x P(x) ≡ ∀x ¬P(x)

Ответ

∀x ¬P(x)

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

3.Множества, отношения и функции

Ответ: n = 15

Множества и диаграммы Венна: A ∪ B содержит элементы из A или B (или из обоих), A ∩ B — элементы из обоих, A − B — элементы A, не лежащие в B, а дополнение A′ — всё из U, что не лежит в A. На диаграмме Венна каждое выражение для множеств является объединением областей, поэтому подсчитывайте его по областям. Формула включений и исключений: |A ∪ B| = |A| + |B| − |A ∩ B| и |A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C|.

Центр и пары

M ∩ P ∩ C: 3
M ∩ P только: 6 − 3 = 3
M ∩ C только: 10 − 3 = 7
P ∩ C только: 8 − 3 = 5

Отдельные множества

M только: 16 − 3 − 7 − 3 = 3
P только: 14 − 3 − 5 − 3 = 3
C только: 24 − 7 − 5 − 3 = 9

Ответ

3 + 3 + 9 = 15

Ответ

n = 15
4.Множества, отношения и функции

Ответ: f−1(2) = 3

Функции и подсчёт: функция f: A → B ставит каждому элементу A в соответствие ровно один образ в B. f инъективна (взаимно однозначна в одну сторону), если разные элементы имеют разные образы, сюръективна (на), если каждый элемент B является образом, и биективна, если выполнено и то и другое. При |A| = m и |B| = n существует nᵐ функций, n!/(n − m)! инъективных (m ≤ n) и по формуле включений и исключений Σ (−1)ᵏ·C(n, k)·(n − k)ᵐ сюръективных. |𝒫(A)| = 2ᵐ и |A × B| = m·n.

Читайте таблицу в обратном направлении

f(3) = 2 → f−1(2) = 3

Ответ

f−1(2) = 3
5.Теория графов

Ответ: Эйлеров цикл

Эйлер, Гамильтон и деревья: связный граф имеет эйлеров цикл (каждое ребро один раз, с возвратом в начало), когда все вершины имеют чётную степень, и эйлеров путь, не являющийся циклом, когда ровно две вершины имеют нечётную степень; тогда путь идёт от одной нечётной вершины к другой. Гамильтонов цикл посещает каждую вершину один раз; в Kn их (n − 1)!/2. У дерева на n вершинах n − 1 ребро, а связный граф с m рёбрами сохраняет остовное дерево после удаления m − n + 1 рёбер.

Степени

deg(A) = 2, deg(B) = 2, deg(C) = 2, deg(D) = 2, deg(E) = 4, deg(F) = 2

Нечётные вершины

0
Эйлеров цикл

Ответ

Эйлеров цикл
6.Теория графов

Ответ: ребро GC

Кратчайшие пути и остовные деревья: алгоритм Дейкстры фиксирует по одной вершине на шаге: нефиксированную вершину с наименьшим предварительным расстоянием. Её расстояние становится окончательным, а каждый сосед v получает d(v) = min(d(v), d(u) + w(u, v)). Алгоритм Краскала строит минимальное остовное дерево, беря рёбра от лёгких к тяжёлым и пропуская любое ребро, которое замкнуло бы цикл; алгоритм Прима растит одно дерево из начальной вершины, всегда добавляя самое лёгкое ребро, выходящее из него. В остовном дереве на n вершинах n − 1 ребро.

Алгоритм Прима

1. GB (6)
2. GC (7)
3. CE (3)
4. AC (5)
5. EF (8)
6. DE (15)

номер ребра 2

GC

Ответ

ребро GC
7.Теория чисел и модульная арифметика

Ответ: x = 40

Обратные элементы и сравнения: у a есть обратный по модулю n ровно тогда, когда НОД(a, n) = 1. Расширенный алгоритм Евклида записывает 1 = s·n + t·a, откуда a⁻¹ ≡ t (mod n). Сравнение a·x ≡ b (mod n) при НОД(a, n) = 1 имеет решение x ≡ a⁻¹·b. Два сравнения x ≡ r₁ (mod m₁) и x ≡ r₂ (mod m₂) со взаимно простыми модулями имеют одно решение по модулю m₁·m₂ (китайская теорема об остатках). Функция Эйлера φ(n) считает числа от 1 до n, взаимно простые с n: φ(n) = n·∏(1 − 1/p).

Первое сравнение

x = 5 + 7k

Второе сравнение

5 + 7k ≡ 4 (mod 9) → 7k ≡ 8 (mod 9)
k ≡ 4·8 ≡ 5 (mod 9)

Результат

x = 5 + 7·5 = 40
x = 40
проверка: 40 mod 7 = 5, 40 mod 9 = 4

Ответ

x = 40
8.Теория чисел и модульная арифметика

Ответ: 430500 mod 71 = 20

Степени по модулю и RSA: вычисляйте aᵏ mod n многократным возведением в квадрат: запишите k в двоичном виде, возводите в квадрат, приводите по модулю после каждого шага и перемножайте те степени, чей бит равен 1. Ферма: aᵖ⁻¹ ≡ 1 (mod p) для простого p, не делящего a, поэтому показатель можно приводить по модулю p − 1. RSA: выберите простые p и q, n = p·q и φ(n) = (p − 1)(q − 1); открытый показатель e взаимно прост с φ(n), а закрытый показатель d = e⁻¹ mod φ(n). Шифруйте как c = mᵉ mod n и расшифровывайте как m = cᵈ mod n.

Приведите показатель

30500 mod 70 = 50
430500 ≡ 450 (mod 71)

Малая степень

450 mod 71 = 20

Ответ

430500 mod 71 = 20

ExamProblems · examproblems.com/courses/discrete-mathematics