Дискретна математика: шпаргалка-підсумок

Аркуші з формулами, ключові кроки методів для кожної теми та 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
Ейлер
цикл: усі степені парні; шлях: рівно 2 непарні степені
Гамільтонові цикли в 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.Логіка висловлювань і доведенняСередня
¬q ∧ ¬(r ∧ p)¬(r ∧ p) → ¬¬q¬¬q → ¬(r ∧ p)(r ∧ p) → ¬q

Ви хочете довести ¬q → (r ∧ p) від контрапозиції. Яку імплікацію ви доводите натомість? Клікніть її.

¬q → (r ∧ p)
  1. 1¬q ∧ ¬(r ∧ p)
  2. 2¬(r ∧ p) → ¬¬q
  3. 3¬¬q → ¬(r ∧ p)
  4. 4(r ∧ p) → ¬q
2.Логіка висловлювань і доведенняСкладна
∃x ∃y ¬R(x, y)∃x ∀y ¬R(x, y)∀x ∃y ¬R(x, y)∀x ∀y ¬R(x, y)

Яке твердження еквівалентне ¬∃x ∀y R(x, y), якщо заперечення перенесено повністю досередини? Клікніть його.

¬∃x ∀y R(x, y)
  1. 1∃x ∃y ¬R(x, y)
  2. 2∃x ∀y ¬R(x, y)
  3. 3∀x ∃y ¬R(x, y)
  4. 4∀x ∀y ¬R(x, y)
3.Множини, відношення та функціїСередня
UABC5102103762

Кожне число на діаграмі Вена — це кількість елементів у цій області. Знайдіть |(A ∩ B′)′|.

|U| = 45
|(A ∩ B′)′| =
4.Множини, відношення та функціїСкладна

Скільки різних відношень існує на множині з 2 елементів? Позначте число N.

|X| = 2
N =
5.Теорія графівСередня

Скільки різних гамільтонових циклів H має повний граф K5? Цикли, що відрізняються лише початковою вершиною чи напрямком, вважаються однаковими.

K5
H =
6.Теорія графівСкладна
ABCDEF

Скільки замкнених маршрутів довжиною 2 починаються й закінчуються в B? Маршрут може повторювати вершини й ребра. Позначте число N.

M = матриця суміжностіL = 2
N =
7.Теорія чисел і арифметика за модулемСередня

Знайдіть обернений до 66 за модулем 71: число x, де 0 < x < 71 і 66·x ≡ 1 (mod 71).

a = 66n = 71
66−1 mod 71 =
8.Теорія чисел і арифметика за модулемСкладна
mc = me​ mod ncm = cd​ mod nm(n, e) = (481, 17)d = ?

Ключ RSA використовує прості числа p = 13 і q = 37 та відкритий показник e = 17. Знайдіть закритий показник d (0 < d < φ(n)).

p = 13q = 37e = 17
d =

3Розчини

1.Логіка висловлювань і доведення

Відповідь: ¬(r ∧ p) → ¬¬q

Логічна еквівалентність: дві формули еквівалентні (≡), коли мають однакове значення в кожному рядку таблиці істинності. Тавтологія дорівнює 1 у кожному рядку, суперечність — 0 у кожному рядку, а випадкова формула — ні те, ні інше. Корисні закони: закони де Моргана, ¬(a ∧ b) ≡ ¬a ∨ ¬b і ¬(a ∨ b) ≡ ¬a ∧ ¬b; a → b ≡ ¬a ∨ b ≡ ¬b → ¬a (контрапозиція); ¬(a → b) ≡ a ∧ ¬b; а також закони дистрибутивності, a ∨ (b ∧ c) ≡ (a ∨ b) ∧ (a ∨ c).

Частини імплікації

a = ¬q, b = r ∧ p

Контрапозиція

¬b → ¬a = ¬(r ∧ p) → ¬¬q

Відповідь

¬(r ∧ p) → ¬¬q

Контрапозиція еквівалентна вихідному твердженню, тож доведення її доводить і твердження.

2.Логіка висловлювань і доведення

Відповідь: ∀x ∃y ¬R(x, y)

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

Перенесіть заперечення досередини

¬∃x ∀y R(x, y) ≡ ∀x ∃y ¬R(x, y)

Відповідь

∀x ∃y ¬R(x, y)

Інші варіанти або залишають квантор без змін, або змінюють порядок кванторів, або неправильно заперечують внутрішню формулу.

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

Відповідь: |(A ∩ B′)′| = 28

Множини та діаграми Вена: 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|.

Області виразу

A′ ∩ B′ ∩ C′: 5
A′ ∩ B ∩ C′: 2
A ∩ B ∩ C′: 10
A′ ∩ B′ ∩ C: 3
A′ ∩ B ∩ C: 6
A ∩ B ∩ C: 2

Додайте

|(A ∩ B′)′| = 5 + 2 + 10 + 3 + 6 + 2 = 28

Відповідь

|(A ∩ B′)′| = 28
4.Множини, відношення та функції

Відповідь: N = 16

Відношення: відношення R на множині X — це множина впорядкованих пар (x, y). R рефлексивне, коли (x, x) ∈ R для кожного x з X; симетричне, коли (x, y) ∈ R завжди супроводжується (y, x) ∈ R; антисиметричне, коли (x, y) і (y, x) одночасно належать R лише якщо x = y; і транзитивне, коли (x, y) та (y, z) в R тягнуть за собою (x, z) ∈ R. Відношення еквівалентності рефлексивне, симетричне й транзитивне та розбиває X на неперетинні класи.

Порахуйте вільні вибори

N = 24 = 16

Відповідь

N = 16
5.Теорія графів

Відповідь: H = 12

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

Порахуйте

H = (5 − 1)!/2 = 24/2 = 12

Відповідь

H = 12
6.Теорія графів

Відповідь: N = 2

Степені: степінь вершини — це кількість ребер, що в ній сходяться. Кожне ребро має два кінці, тож степені в сумі дають подвоєну кількість ребер: Σ deg(v) = 2|E| (лема про рукостискання). Тому кількість вершин з непарним степенем парна. Kn має n(n − 1)/2 ребер, k-регулярний граф на n вершинах має nk/2, а дерево на n вершинах має n − 1 ребро.

Матриця суміжності

A: 0 1 1 0 0 0
B: 1 0 0 1 0 0
C: 1 0 0 0 1 0
D: 0 1 0 0 1 1
E: 0 0 1 1 0 1
F: 0 0 0 1 1 0

Спільні сусіди

(M²)BB = 1·1 + 0·0 + 0·0 + 1·1 + 0·0 + 0·0 = 2

Відповідь

N = 2
7.Теорія чисел і арифметика за модулем

Відповідь: 66−1 mod 71 = 14

Обернені елементи та конгруенції: a має обернений за модулем n саме тоді, коли gcd(a, n) = 1. Розширений алгоритм Евкліда записує 1 = s·n + t·a, і тоді a⁻¹ ≡ t (mod n). Конгруенція a·x ≡ b (mod n) з gcd(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).

Розширений алгоритм Евкліда

Кожен залишок r записується як r ≡ t·66 (mod 71).

r = 71, t = 0
r = 66, q = 1, t = 1
r = 5, q = 13, t = −1
r = 1, q = 5, t = 14

Обернена

1 ≡ 14·66 (mod 71)
x = 14
перевірка: 66·14 = 924 = 13·71 + 1

Відповідь

66−1 mod 71 = 14
8.Теорія чисел і арифметика за модулем

Відповідь: d = 305

Степені за модулем і 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.

Модуль і функція Ейлера

n = 13·37 = 481
φ(n) = 12·36 = 432

Розширений алгоритм Евкліда

r = 432, t = 0
r = 17, q = 25, t = 1
r = 7, q = 2, t = −25
r = 3, q = 2, t = 51
r = 1, q = 3, t = −127

Закритий показник

d = 305
перевірка: 17·305 = 5185 = 12·432 + 1

Відповідь

d = 305

ExamProblems · examproblems.com/courses/discrete-mathematics