Намалюйте діаграму Вена й вирішіть область за областю, що належить множинному виразу.
У задачах на підрахунок заповнюйте області від центру назовні: спочатку всі множини, потім пари, потім окремі множини, потім зовнішню частину.
Використовуйте принцип включення–виключення для перевірки: |A ∪ B| = |A| + |B| − |A ∩ B|.
Для відношення перевіряйте кожну властивість на кожній парі й наводьте один контрприклад, коли вона не виконується.
Для функції порахуйте стрілки, що приходять до кожного елемента 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
Метод
Випишіть степінь кожної вершини; сума степенів дорівнює подвоєній кількості ребер.
У задачах про Ейлера перевірте, що граф зв’язний, і порахуйте вершини з непарним степенем.
Для дерев використовуйте n − 1 ребро та лему про рукостискання.
Для алгоритму Дейкстри ведіть таблицю попередніх відстаней і щоразу фіксуйте незафіксовану вершину з найменшою відстанню.
Для мінімального остовного дерева відсортуйте ребра за вагою й пропускайте кожне ребро, що замикає цикл (Крускал), або нарощуйте одне дерево від початкової вершини (Прім).
Теорія чисел і арифметика за модулем
Ділення із залишком
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
Метод
Спершу зведіть кожне число за модулем n; залишки лежать між 0 і n − 1.
Для НСД діліть послідовно за алгоритмом Евкліда; останній ненульовий залишок і є НСД.
Для оберненого елемента виконайте розширений алгоритм і візьміть коефіцієнт при a; якщо він від’ємний, додайте n.
Розв’язуйте a·x ≡ b множенням на a⁻¹; поєднуйте дві конгруенції, записавши x = r₁ + m₁k.
Для степенів запишіть показник у двійковому вигляді й послідовно підносьте до квадрата; в RSA d = e⁻¹ mod φ(n), де φ(n) = (p − 1)(q − 1).
2Задачі для практики
1.Логіка висловлювань і доведенняСередня
Яка формула логічно еквівалентна ¬(b → c)? Клікніть її.
¬(b → c)
1¬b → ¬c
2¬b ∧ c
3b → ¬c
4b ∧ ¬c
2.Логіка висловлювань і доведенняСкладна
Яке твердження еквівалентне ¬∀x (P(x) → ∃y R(x, y)), якщо заперечення перенесено повністю досередини? Клікніть його.
¬∀x (P(x) → ∃y R(x, y))
1∃x (P(x) ∧ ∀y ¬R(x, y))
2∀x (P(x) ∧ ∀y ¬R(x, y))
3∃x (¬P(x) ∧ ∃y R(x, y))
4∃x (P(x) → ∀y ¬R(x, y))
3.Множини, відношення та функціїСередня
R = {(1, 2), (2, 1), (2, 2)} — відношення на {1, 2, 3}. Яке найменше число k впорядкованих пар треба додати до R, щоб воно стало рефлексивним?
R = {(1, 2), (2, 1), (2, 2)}
k =
4.Множини, відношення та функціїСкладна
Скільки відношень на множині з 3 елементів є одночасно рефлексивними й симетричними? Позначте число N.
|X| = 3
N =
5.Теорія графівСередня
Дерево має 2 вершин степеня 3, 2 вершин степеня 4, 3 вершин степеня 5, 4 вершин степеня 2, а всі його інші вершини — листки (степінь 1). Скільки листків L воно має?
2 × deg 32 × deg 43 × deg 54 × deg 2
L =
6.Теорія графівСкладна
Скільки маршрутів довжиною 3 ведуть від B до A? Маршрут може повторювати вершини й ребра. Позначте число N.
M = матриця суміжностіL = 3
N =
7.Теорія чисел і арифметика за модулемСередня
Знайдіть обернений до 13 за модулем 62: число x, де 0 < x < 62 і 13·x ≡ 1 (mod 62).
a = 13n = 62
13−1 mod 62 =
8.Теорія чисел і арифметика за модулемСкладна
23 — просте. Скористайтеся малою теоремою Ферма, щоб знайти 197850 mod 23.
p = 23k = 7850
197850 mod 23 =
3Розчини
1.Логіка висловлювань і доведення
Відповідь: b ∧ ¬c
Логічна еквівалентність: дві формули еквівалентні (≡), коли мають однакове значення в кожному рядку таблиці істинності. Тавтологія дорівнює 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 → b) ≡ ¬(¬a ∨ b) ≡ a ∧ ¬b: єдиний рядок, у якому імплікація хибна.
¬(b → c) ≡ b ∧ ¬c
Перевірте за таблицею істинності
b = 1, c = 1: 0 | 1 0 0 0
b = 1, c = 0: 1 | 1 0 1 1
b = 0, c = 1: 0 | 0 1 1 0
b = 0, c = 0: 0 | 1 0 1 0
Відповідь
b ∧ ¬c
Стовпці після риски — це варіанти в показаному порядку.
2.Логіка висловлювань і доведення
Відповідь: ∃x (P(x) ∧ ∀y ¬R(x, y))
Квантори та міркування: ¬∀x P(x) ≡ ∃x ¬P(x) і ¬∃x P(x) ≡ ∀x ¬P(x). Переносьте заперечення досередини, міняйте кожен квантор, який воно проходить, і заперечуйте внутрішню формулу за законами логіки висловлювань, наприклад ¬(a → b) ≡ a ∧ ¬b. Міркування коректне, коли висновок дорівнює 1 у кожному рядку, де всі передумови дорівнюють 1. Один рядок з істинними передумовами та хибним висновком — це контрприклад, який показує, що міркування некоректне.
Перенесіть заперечення досередини
¬∀x (P(x) → ∃y R(x, y)) ≡ ∃x (P(x) ∧ ∀y ¬R(x, y))
Відповідь
∃x (P(x) ∧ ∀y ¬R(x, y))
Інші варіанти або залишають квантор без змін, або змінюють порядок кванторів, або неправильно заперечують внутрішню формулу.
3.Множини, відношення та функції
Відповідь: k = 2
Відношення: відношення 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 на неперетинні класи.
Пари для додавання
{(1, 1), (3, 3)}
Порахуйте
k = 2
Відповідь
k = 2
4.Множини, відношення та функції
Відповідь: N = 8
Відношення: відношення 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 = 23 = 8
Відповідь
N = 8
5.Теорія графів
Відповідь: L = 17
Ейлер, Гамільтон і дерева: зв’язний граф має ейлерів цикл (кожне ребро один раз, з поверненням до початку), коли кожна вершина має парний степінь, і ейлерів шлях, що не є циклом, коли рівно дві вершини мають непарний степінь; тоді шлях іде від однієї непарної вершини до другої. Гамільтонів цикл відвідує кожну вершину один раз; у Kn їх (n − 1)!/2. Дерево на n вершинах має n − 1 ребро, а зв’язний граф з m ребрами зберігає остовне дерево після вилучення m − n + 1 ребер.
Лема про рукостискання для дерева
L + 37 = 2(L + 11) − 2
L = 17
Відповідь
L = 17
Скорочення: L = 2 + Σ (d − 2) за вершинами зі степенем d ≥ 3.
6.Теорія графів
Відповідь: N = 5
Степені: степінь вершини — це кількість ребер, що в ній сходяться. Кожне ребро має два кінці, тож степені в сумі дають подвоєну кількість ребер: Σ 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 1 0
C: 1 0 0 0 1 0
D: 0 1 0 0 1 1
E: 0 1 1 1 0 0
F: 0 0 0 1 0 0
Ще один крок
(M³)BA = 0·0 + 3·1 + 2·1 + 1·0 + 1·0 + 1·0 = 5
Відповідь
N = 5
7.Теорія чисел і арифметика за модулем
Відповідь: 13−1 mod 62 = 43
Обернені елементи та конгруенції: 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·13 (mod 62).
r = 62, t = 0
r = 13, q = 4, t = 1
r = 10, q = 1, t = −4
r = 3, q = 3, t = 5
r = 1, q = 3, t = −19
Обернена
1 ≡ −19·13 (mod 62)
x = 43
перевірка: 13·43 = 559 = 9·62 + 1
Відповідь
13−1 mod 62 = 43
8.Теорія чисел і арифметика за модулем
Відповідь: 197850 mod 23 = 8
Степені за модулем і 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.