Menu

Дискретная математика

Дискретная математика изучает отдельные, счётные объекты: истинно или ложно, в множестве или вне его, этот путь или тот. На ней работают компьютеры, и начинается она с логики, которую можно включать и выключать.

Автор: Nethanel Bar, Сооснователь и генеральный директор

Обновлено

Дискретная математика изучает отдельные, счётные объекты. Высказывание истинно или ложно, элемент лежит в множестве или нет, в сети между двумя точками есть связь или её нет. Ничего промежуточного нет, в этом и смысл слова «дискретный», и именно так мир видит компьютер.

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

Связка
p
q
Отрицание

Таблица истинности для p ∧ q

pqp ∧ q
ИИИ
ИЛЛ
ЛИЛ
ЛЛЛ

Переключайте p и q или нажмите на строку. Выделена та строка, которую они выбирают.

Читайте p как «x лежит в A», а q как «x лежит в B». Закрашены области, где высказывание истинно; точка показывает текущую строку.

И

p ∧ q

Как читать p и q

При этих значениях p ∧ q истинно.

Истинно, только когда истинны и p, и q.

На языке множеств И соответствует пересечению: x лежит в A ∩ B ровно тогда, когда x лежит в A и x лежит в B.

Логика: высказывания и связки

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

символназваниекак читатьистинно, когда
∧И, конъюнкция«p и q»оба истинны
∨ИЛИ, дизъюнкция«p или q»хотя бы одно истинно
¬НЕ, отрицание«не p»p ложно
⊕XOR, исключающее ИЛИ«p или q, но не оба»истинно ровно одно
→импликация«если p, то q»во всех случаях, кроме p истинно и q ложно
↔эквиваленция«p тогда и только тогда, когда q»у p и q одинаковое значение

Две из них удивляют. Логическое ИЛИ включающее: «p или q» истинно, когда истинны оба, в отличие от бытового «чай или кофе?». У исключающего варианта своё название, XOR.

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

Равносильные высказывания

Два высказывания равносильны, когда их таблицы истинности совпадают в каждой строке. В виджете выберите ИЛИ и включите отрицание p: столбец для ¬p ∨ q совпадает со столбцом для p → q, так что оба говорят одно и то же.

Самые полезные равносильности называют законами де Моргана; они говорят, как НЕ проходит через И и ИЛИ:

¬(p ∧ q) ≡ ¬p ∨ ¬q

¬(p ∨ q) ≡ ¬p ∧ ¬q

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

Логика и множества: одна идея

Читайте p как «x лежит в A», а q как «x лежит в B». Тогда И становится пересечением, ИЛИ объединением, а НЕ дополнением, и каждая таблица истинности превращается в закрашенную диаграмму Венна; поэтому виджет рисует её рядом с таблицей. Законы де Моргана становятся правилами для множеств:

(A ∩ B)′ = A′ ∪ B′

Страница про обозначения множеств закрашивает каждое из них на диаграмме, по которой можно щёлкать.

Комбинаторика

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

Правило произведения. Если один выбор можно сделать m способами, а второй n способами, то пару можно выбрать m × n способами. У 4-значного PIN-кода на каждую цифру 10 вариантов, поэтому возможных кодов 10^4 = 10000.

Сочетания. Число способов выбрать k объектов из n, когда порядок не важен, записывают как C(n, k). Выбор 3 начинок из 8:

C(8, 3) = (8 × 7 × 6) / (3 × 2 × 1) = 56

Числитель считает упорядоченные выборы, а деление на 3 × 2 × 1 убирает 6 порядков, в которых можно было выбрать те же три начинки.

Ответ: 6 × 5, делённое на 2, то есть 15. Если у вас получилось 30, вы посчитали каждую пару дважды, по разу в каждом порядке.

Графы

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

Первый результат: если 5 человек по разу пожимают руки друг другу, рукопожатий C(5, 2) = 10. Каждый пожимает 4 руки, что даёт 5 × 4 = 20 «концов» рукопожатий, а у каждого рукопожатия два конца, так что 20 / 2 = 10. Это рассуждение называют леммой о рукопожатиях: сумма степеней всех вершин вдвое больше числа рёбер.

Теория чисел и доказательства

Арифметика остатков похожа на арифметику на циферблате. 17 mod 5 равно 2, остатку от деления 17 на 5. Через девять часов после 8 часов будет 5 часов, потому что 17 mod 12 равно 5. Та же идея с очень большими числами лежит в основе шифрования RSA, на котором работают защищённые сайты.

Доказательство по индукции показывает, что утверждение верно для каждого натурального n, в два шага: проверьте его для n = 1, затем покажите, что если оно верно для некоторого n, то верно и для n + 1. Так доказывают, например, что

1 + 2 + ... + n = n(n + 1) / 2

для каждого n, а не только для проверенных значений.

Где применяется дискретная математика

  • Программирование: каждый условный оператор if является логикой, а законы де Моргана переписывают условия.
  • Базы данных: запрос, который соединяет или фильтрует таблицы, состоит из операций над множествами.
  • Алгоритмы: комбинаторика говорит, сколько шагов делает программа при росте входных данных.
  • Сети и карты: кратчайшие маршруты и социальные сети сводятся к задачам на графах.
  • Безопасность: шифрование опирается на теорию чисел и арифметику остатков.
  • Аппаратура: процессор собран из логических вентилей, а они представляют собой таблицы истинности в кремнии.

Сложная ли дискретная математика?

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

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

Частые вопросы

Что такое дискретная математика?
Раздел математики, который изучает отдельные, счётные объекты, а не плавно меняющиеся величины. Её главные темы: логика, множества, комбинаторика, графы, теория чисел и доказательства. Математический анализ спрашивает, как величины меняются непрерывно; дискретная математика спрашивает, сколько, какие именно и истинно ли высказывание.
Сложная ли дискретная математика?
Она сложна иначе, чем математический анализ. Формул для применения меньше, а рассуждений, которые нужно выстроить, больше, и для многих студентов это первый курс, построенный вокруг доказательств. Алгебры обычно немного. Тем, кому трудно, в основном приходится привыкать к доказательствам, и это быстро улучшается с практикой на небольших примерах.
Где применяется дискретная математика?
Почти везде в информатике. На логике работают схемы и условные операторы if, на множествах основаны запросы к базам данных, комбинаторика говорит, сколько времени займёт алгоритм, графы моделируют сети и карты, а теория чисел лежит в основе шифрования, которое защищает онлайн-платежи.
Какие темы входят в дискретную математику?
Типичный первый курс охватывает логику высказываний и таблицы истинности, множества и диаграммы Венна, функции и отношения, методы доказательства, включая индукцию, подсчёт с помощью перестановок и сочетаний, основы теории вероятностей, графы и деревья, а также арифметику остатков. Некоторые курсы добавляют рекуррентные соотношения и булеву алгебру.
Нужна ли дискретная математика для информатики?
Да. Почти любая программа по информатике требует её, обычно на первом или втором курсе, потому что алгоритмы, структуры данных и теория вычислений опираются на неё. Программировать можно начать и без неё, но логика, множества и подсчёт появляются в повседневном коде раньше, чем многие ожидают.
Чем дискретная математика отличается от непрерывной?
Дискретная математика имеет дело со значениями, которые можно перечислить по одному, например с целыми числами, с истиной и ложью или с узлами сети. Непрерывная математика, например математический анализ, имеет дело с величинами, которые могут принимать любое значение в промежутке, например со временем, расстоянием или температурой.
Что такое таблица истинности?
Таблица, в которой перечислены все сочетания истины и лжи для входов логического высказывания и значение высказывания для каждого из них. При двух входах p и q в ней четыре строки. Таблицей истинности доказывают, что два высказывания равносильны: если их столбцы совпадают в каждой строке, они всегда согласны.

Связанные идеи

Иллюстрация языков программирования Coddy

Изучайте математику с Coddy

НАЧАТЬ