Ты когда-нибудь задумывался, почему процессор в твоём телефоне принимает миллиарды решений в секунду — и ни разу не ошибается в том, какой пиксель зажечь? 🤯
Или почему TikTok знает, что тебе показать следующим?
За всем этим стоит одна идея, которой почти 200 лет. Её придумал математик Джордж Буль — и она до сих пор лежит в основе абсолютно каждого компьютера на земле.
Называется это алгебра логики.
И нет, это не про «логичное мышление» в разговорном смысле.
Это буквально математика для истины и лжи.
📊 Почему таблицы — это тупик (и что вместо них)
Есть стандартный способ разобраться с логическим выражением — построить таблицу истинности.
Перебираешь все комбинации переменных, проверяешь результат. Звучит несложно.
Но вот цифры:
- три переменные — 8 строк
- десять переменных — 1024 строки
- двадцать переменных — больше миллиона строк
Именно так проектируются реальные процессоры, где переменных — тысячи.
Очевидно, что таблицами здесь никто не занимается.
Вместо этого используют законы алгебры логики — набор правил, которые позволяют упрощать выражения символьно, не перебирая ни одной строки.
Это как разница между тем, чтобы вручную пересчитать все пиксели кадра — или просто применить формулу сжатия. ⚙️
🔄 Де Морган: самый полезный закон, о котором ты, скорее всего, не слышал
Среди всех законов есть два, которые используются в реальном коде буквально каждый день.
Законы де Моргана:
НЕ(A И B) = НЕ-A ИЛИ НЕ-B
НЕ(A ИЛИ B) = НЕ-A И НЕ-B
Мнемоника простая:
разбиваешь скобку — переворачиваешь операцию.
Пример из Python:
not (user.is_admin and user.is_active)
абсолютно эквивалентно
(not user.is_admin) or (not user.is_active)
Второй вариант в некоторых ситуациях работает быстрее, потому что компьютер может остановиться, как только первое условие окажется ложным. 🚀
Это называется оптимизация.
И именно этим занимаются компиляторы — автоматически применяют законы де Моргана к твоему коду, чтобы он выполнялся эффективнее.
Ты пишешь понятно для себя — машина переписывает понятно для себя.
♻️ Почему A & A = A — это не очевидно, но гениально
В обычной математике 3 × 3 = 9.
В алгебре логики:
A & A = A
Если переменная может принимать только два значения — 0 или 1 — то:
- «истина И истина» даёт «истину»
- «ложь И ложь» даёт «ложь»
Результат совпадает с исходным.
Никакого накопления. Никакого роста.
Этот закон идемпотентности — один из тех моментов, где логика ведёт себя совсем не как привычная алгебра.
Именно такие особенности делают её мощным инструментом для описания двоичного мира.
🧱 16 функций, одна из которых управляет всей электроникой планеты
Для двух переменных существует ровно 16 различных логических функций.
Среди них — И, ИЛИ, НЕ, импликация, эквиваленция.
Но есть одна, которая стоит особняком.
Это штрих Шеффера (или NAND — «И-НЕ»):
A | B = НЕ(A И B)
Вот в чём фокус:
из одного только NAND можно построить абсолютно любую логическую схему.
Любую операцию — НЕ, И, ИЛИ — можно выразить только через NAND.
Это называется функциональная полнота.
Именно поэтому производители чипов штампуют миллиарды транзисторов одного типа и получают процессор, способный:
- запускать операционную систему
- рендерить 3D
- шифровать твою переписку
Из одного кирпича — любое здание. 🔥
🧩 Как получить формулу из таблицы (и зачем это вообще нужно)
Бывает обратная задача:
Есть таблица истинности — набор ситуаций, при которых что-то должно работать — и нужно превратить её в формулу.
Алгоритм называется СДНФ (Совершенная Дизъюнктивная Нормальная Форма).
Он работает так:
- Находишь все строки, где результат равен 1.
- Для каждой такой строки записываешь конъюнктивный минтерм — берёшь все переменные:
единицы — как есть
нули — с отрицанием - Соединяешь все минтермы через ИЛИ.
Получаешь рабочую формулу.
Громоздкую — но рабочую.
Дальше начинается упрощение.
Последовательно применяешь законы — исключённое третье, дистрибутивность, поглощение — и выражение сокращается. Иногда в разы.
Каждый «лишний» элемент в формуле — это:
- лишний транзистор
- лишнее тепло
- лишняя энергия
- лишняя цена производства
Вот почему инженеры Intel и AMD буквально зарабатывают на жизнь упрощением логических выражений. ⚡
🌍 Что это всё значит для тебя
Алгебра логики — это не абстрактная математика из учебника.
Это базовый язык, на котором написаны:
- процессоры
- компиляторы
- алгоритмы безопасности
- системы принятия решений
Когда ты понимаешь де Морган — ты понимаешь, как компилятор оптимизирует код.
Когда ты понимаешь NAND — ты понимаешь, почему чипы устроены одинаково в самой своей основе.
Когда ты понимаешь СДНФ — ты понимаешь, как из таблицы требований рождается работающая программа или схема.
Это фундамент, на котором стоит весь цифровой мир вокруг тебя.
Полный учебный материал с детальными примерами, разбором задач и схемами — по ссылке.