
Онлайн книга «Код. Тайный язык информатики»
символ «+» (ранее обозначавший объединение) теперь означает ИЛИ; символ «×» (ранее обозначавший пересечение) теперь означает И; выражение «1 –» (ранее обозначавшее множество всех элементов, за исключением чего-то) теперь означает НЕ. Именно поэтому приведенное выше выражение также может быть записано: (М И С И (Б ИЛИ Р)) ИЛИ (Ж И С И (НЕ Б)) ИЛИ Ч. Как видите, это соответствует тому, что вы сказали. Обратите внимание, как скобки уточняют ваши пожелания. Вам нужна кошка, принадлежащая одному из трех множеств. (М И С И (Б ИЛИ Р)) ИЛИ (Ж И С И (НЕ Б)) ИЛИ Ч С помощью этой формулы продавец может выполнить то, что называется проверкой условия. Незаметно мы перешли к несколько иной форме булевой алгебры, в которой буквы не обозначают множества. Вместо этого буквы теперь могут соответствовать числам. Однако буквам может быть присвоено только значение 0 или 1. Число 1 означает «да», «истина», данная конкретная кошка удовлетворяет этим критериям, число 0 — «нет», «ложь», данная кошка не удовлетворяет этим критериям. Сначала продавец приносит нестерилизованного рыжего кота. Вот выражение, описывающее множество приемлемых кошек: (М × С × (Б + Р)) + (Ж × С × (1 − Б)) + Ч. Вот как оно выглядит после подстановки значений 0 и 1: (1 × 0 × (0 + 1)) + (0 × 0 × (1 – 0)) + 0. Обратите внимание: единственными символами, которым было присвоено значение 1, являются М и Р, поскольку речь идет о рыжем коте. Теперь нужно упростить данное выражение. Если оно упрощается до 1, то кошка удовлетворяет вашим критериям; если оно упрощается до 0, то кошка критериям не удовлетворяет. Имейте в виду, что в процессе упрощения выражения мы на самом деле ничего не складываем и не умножаем, хотя обычно можем сделать вид, что выполняем эти операции. Большинство тех же правил применяются тогда, когда символ «+» означает ИЛИ, а символ «×» — И. Иногда в современных текстах для обозначения И и ИЛИ используются символы «∧» и «∨» вместо «×» и «+». Однако именно здесь символы «+» и «×», вероятно, имеют наибольший смысл. Когда символ «×» означает И, возможны результаты: 0 × 0 = 0; 0 × 1 = 0; 1 × 0 = 0; 1 × 1 = 1. Другими словами, результат равен 1 только в том случае, если левый И правый операнды равны 1. Эта операция соответствует обычному умножению и называется конъюнкцией, и ее можно описать с помощью небольшой таблицы, аналогичной таблицам сложения и умножения, приведенным в главе 8. ![]() Когда символ «+» означает ИЛИ, возможны следующие результаты. 0 + 0 = 0; 0 + 1 = 1; 1 + 0 = 1; 1 + 1 = 1. Результат равен 1, если левый ИЛИ правый операнд равен 1. Исход этой операции похож на результаты обычного сложения, за исключением того, что в данном случае 1 + 1 равно 1. Результаты операции ИЛИ, которая называется дизъюнкцией, можно представить в виде другой таблицы. ![]() Мы готовы использовать эти таблицы для вычисления: (1 × 0 × 1) + (0 × 0 × 1) + 0 = 0 + 0 + 0 = 0. Результат 0 — «нет», «ложь», этот котенок не подходит. Затем продавец приносит стерилизованную белую кошку. Исходное выражение выглядело так: (М × С × (Б + Р)) + (Ж × С × (1 − Б)) + Ч. Снова подставим в него значения 0 и 1: (0 × 1 × (1 + 0)) + (1 × 1 × (1 – 1)) + 0. И упростим его: (0 × 1 × 1) + (1 × 1 × 0) + 0 = 0 + 0 + 0 = 0. Еще один несчастный котенок отвергнут. Затем продавец приносит стерилизованную серую кошку. (Серый соответствует критерию «другой окрас», то есть не белый, не черный и не рыжий.) Вот соответствующее выражение: (0 × 1 × (0 + 0)) + (1 × 1 × (1 – 0)) + 0. Теперь упростим его: (0 × 1 × 0) + (1 × 1 × 1) + 0 = 0 + 1 + 0 = 1. Результат вычисления, равный 1, означает «да», «истина», котенок нашел свой дом. (Кроме того, он оказался самым милым!) Позже в тот же вечер, пока котенок спит у вас на коленях, вы спрашиваете себя, нельзя ли подключить несколько переключателей к лампочке для облегчения процесса проверки котят на соответствие вашим критериям. (Да, вы весьма странный ребенок.) Сами не зная того, вы вплотную приблизились к решающему концептуальному прорыву. Вы вот-вот проведете некоторые эксперименты, которые объединят алгебру Джорджа Буля с электричеством и сделают возможным проектирование и сборку компьютеров, работающих с двоичными числами. Однако пусть вас это не пугает. Чтобы поставить такой эксперимент, вы, как обычно, соединяете лампочку и батарейку, но используете два переключателя вместо одного. ![]() Считается, что переключатели, подключенные друг за другом, соединены последовательно. Если вы замыкаете левый переключатель, ничего не происходит. ![]() Если вы оставляете левый переключатель разомкнутым, а замыкаете правый, также ничего не произойдет. Лампочка загорается, когда и левый, и правый переключатели оказываются замкнутыми. ![]() Ключевым в данном случае является союз «и». Левый и правый переключатели должны быть замкнуты, чтобы ток шел по цепи. Эта схема решает небольшую логическую задачу. Фактически лампочка отвечает на вопрос: «Замкнуты ли оба переключателя?» Мы можем суммировать результаты работы этой схемы в следующей таблице. Левый переключатель Правый переключатель Лампочка Разомкнут Разомкнут Не горит Разомкнут |