Глава 10
Логика и переключатели
Что есть истина? Аристотель считал, что ответить на этот воп-
рос можно с помощью логики. Собрание его поучений, извес-
тное как Органон (датируемое IV в. до н. э.), — самое раннее
подробное произведение о логике. Для древних греков логика
была средством для анализа языка в поисках истины и потому
считалась отраслью философии. В основе аристотелевой ло-
гики лежит силлогизм. Самый известный силлогизм (кстати, в
трудах Аристотеля его нет) звучит так:
Все люди смертны;
Сократ — человек;
Следовательно, Сократ смертен.
В силлогизме из двух истинных посылок выводится третья.
Смертность Сократа и без силлогизма достаточно очевид-
на, но приведенным выше примером круг силлогизмов не ог-
раничен. Задумайтесь, например, над следующими двумя по-
сылками, предложенными математиком XIX века Чарльзом
Доджсоном, носившем также псевдоним Льюис Кэрролл:
Все философы логичны;
Нелогичный человек всегда упрям.
Из этой пары вывести верное заключение уже не так просто.
Кстати, звучит оно так: «Некоторые упрямые люди не явля-
ются философами» (заметьте, что в заключении появилась нео-
пределенность, выраженная словом «некоторые»).
100
Глава десятая
В течение двух тысяч лет математики сражались с логикой
Аристотеля, пытаясь обуздать ее математическими символа-
ми и операторами. До XIX в. подойти близко к решению этой
проблемы удалось лишь Готфриду Вильгельму Лейбницу
(1648–1716), который в начале своей научной деятельности
увлекся было логикой, но затем заинтересовался другими про-
блемами (например, независимо от Ньютона и одновременно
с ним изобрел дифференциальное исчисление).
А затем наступило время Джорджа Буля.
Джордж Буль (George Boole) по-
явился на свет в Англии в 1815 г.
Шансы на успех в жизни у него
были весьма невелики. Он родил-
ся в семье башмачника и бывшей
горничной, и жесткая классовая
структура Британии предполагала,
что сам он также не достигнет боль-
ших высот. Но благодаря своему
пытливому уму и помощи отца
(серьезно увлекавшегося матема-
тикой и литературой), юный
Джордж преуспел в науках, кото-
рые считались привилегией маль-
чиков из высших классов, в том числе в латыни, греческом и
математике. Написав несколько научных статей по математи-
ке, в 1849 г. Буль стал первым профессором математики Кол-
леджа Королевы в ирландском городе Корк.
Над математической формулировкой законов логики ра-
ботали в середине XIX в. многие математики (наибольших ус-
пехов добился Огастес Морган), но только Булю удалось со-
вершить концептуальный прорыв в этой области, сначала в
короткой книжке «Математический анализ логики, или очерк
исчисления дедуктивного рассуждения» (1847), а затем в бо-
лее объемном и амбициозном труде «Исследование законов
мышления, на которых основаны математические теории ло-
гики и вероятностей» (1854), который часто сокращенно на-
зывают просто «Исследование законов мышления». Умер Буль
в 1864 г. от воспаления легких, которое он подхватил, попав
под дождь по дороге на занятия. Ему было всего 49 лет.
101
Логика и переключатели
Название основного труда Буля предполагает решение
грандиозной задачи. Рациональное мышление происходит по
законам логики, а значит, если мы найдем способ описать эти
законы средствами математики, тем самым мы получим мате-
матическое описание работы мозга. Конечно, в наши дни это
представление кажется довольно-таки наивным (возможно,
мы до него все еще не доросли!).
По внешнему виду и действию изобретенная Булем алгеб-
ра подобна обычной алгебре. В последней для обозначения
чисел используются операнды (как правило, буквы латинского
алфавита), а для указания способа объединения чисел — опе-
раторы (например, знаки + или
´). Традиционная алгебра ис-
пользуется, например, для решения таких задач. У Ани было 3
яблока, у Бетти в 2 раза больше, а у Кармен на 5 яблок больше,
чем у Бетти. Наконец, у Дейдры было яблок в 3 раза больше,
чем у Кармен. Сколько яблок было у Дейдры?
Чтобы решить эту задачу, мы должны заменить слова ариф-
метическими выражениями, подставив вместо имен буквы ла-
тинского алфавита:
A = 3
B = 2
´ A
C = B + 5
D = 3
´ C
Подстановками эти выражения можно объединить в одно, а
затем вычислить его:
D = 3
´ C
D = 3
´ (B + 5)
D = 3
´ ((2 ´ A) + 5)
D = 3
´ ((2 ´ 3) + 5)
D = 33
Вычисляя алгебраические выражения, мы следуем опреде-
ленным правилам. Эти правила настолько глубоко проникли
в наши повседневные расчеты, что мы даже не принимаем их
за правила и не помним их названий. И все же они положены
в основу любых вычислений.
Первое правило заключается в том, что операции сложе-
ния и умножения коммутативны. Это значит, что их операн-
ды можно менять местами и результат не изменится:
102
Глава десятая
A + B = B + A
A
´ B = B ´ A
А вот операции вычитания и деления коммутативными не яв-
ляются.
Сложение и умножение также являются ассоциативны-
ми, т. е.:
A + (B + C) = (A + B) + C
A
´ (B ´ C) = (A ´ B) ´ C
Наконец, умножение дистрибутивно относительно сложения:
A
´ (B + C) = (A ´ B) + (A ´ C)
Другая характерная особенность обычной алгебры в том,
что она всегда работает с числами: количествами, весами, рас-
стояниями, возрастами и пр. Понадобился гений Буля, чтобы
сделать алгебру более абстрактной, отделив ее от концепции
числа. В булевой алгебре (так стали называть алгебру, разра-
ботанную Булем) операнды обозначают не числа, а множества,
т. е. наборы чего угодно.
Поговорим о кошках. Кошки бывают мужского и женско-
го пола. Для удобства будем обозначать котов буквой М, а ко-
шек — Ж. Не забывайте, что эти буквы не обозначают количе-
ство кошек. Число котов и кошек непрерывно меняется —
рождаются новые котята, а старые кошки (увы) отходят в мир
иной. Буквы М и Ж символизируют множества кошек с опре-
деленными свойствами. Чтобы обозначить множество всех
котов, достаточно сказать просто «М».
Буквами можно обозначить и окрас кошки. Например, бук-
ва Р может соответствовать рыжим кошкам, буква Ч — чер-
ным, Б — белым. В множество Д можно определить кошек всех
других цветов, т. е. не входящих в множества Р, Ч и Б.
Наконец, кошка может быть стерилизованной или несте-
рилизованной. Пусть первых обозначает буква С, а вторых —
буква Н.
В обычной (численной) алгебре операторы + и
´ символи-
зируют сложение и умножение. В булевой алгебре эти знаки
также используются, что может стать причиной некоторой пу-
таницы. Как складывать и умножать обычные числа, знают
практически все, а вот можно ли складывать и умножать мно-
жества?
103
Логика и переключатели
Если говорить точно, то не совсем. В действительности зна-
ки + и
´ в булевой алгебре имеют несколько иное значение.
Символом + в булевой алгебре обозначается объединение
(union) двух множеств, т. е. множество, состоящее из всех эле-
ментов первого множества и всех элементов второго множе-
ства. Например, в множество Ч + Б входят все черные и белые
кошки.
Символ
´ в булевой алгебре соответствует пересечению
(intersection) двух множеств, т. е. множеству, которое содер-
жит только элементы, входящие как в первое, так и во второе
множество. Например, множество Ж
´ Р состоит из рыжих
кошек женского пола. Как и умножение в обычной алгебре,
пересечение двух множеств можно записать в виде Ж · Р или
просто ЖР (такую запись предпочитал сам Буль).
Чтобы избежать путаницы между обычными и булевыми
алгебраическими операциями, вместо + и
´ объединение и пе-
ресечение иногда обозначают знаками и . Однако значение
нововведений Буля для математики отчасти связано с тем, что
он придал знакомым операторам более общий смысл, поэто-
му я решил присоединиться к его мнению и не вводить в буле-
ву алгебру новые символы.
Коммутативный, ассоциативный и дистрибутивный зако-
ны действуют и в булевой алгебре. Более того, в ней оператор
+ дистрибутивен относительно оператора
´. Вот такое выра-
жение в обычной алгебре несправедливо:
Б + (Ч
´ Ж) = (Б + Ч) ´ ( Б + Ж)
Объединение белых кошек с черными кошками женского
пола содержит те же элементы, что и пересечение двух объе-
динений: белых кошек с черными и белых — с кошками жен-
ского пола. Звучит, конечно, не очень внятно, но так оно и есть
на самом деле.
Чтобы завершить описание булевой алгебры, нужно ввес-
ти еще два символа. Выглядят они обычными цифрами, но та-
ковыми на самом деле не являются, поскольку иногда ведут
себя не так, как цифры. Символ 1 в булевой алгебре означает
все, о чем идет речь, например, в нашем случае он означает
множество всех кошек без исключения. Таким образом:
М + Ж = 1
104
Глава десятая
Иначе говоря, в объединение кошек мужского и женского пола
попадают вообще все кошки. Все кошки содержатся также в
объединении множеств рыжих кошек, черных кошек, белых
кошек и кошек других окрасов:
Р + Ч + Б + Д = 1
Построить множество, содержащее всех кошек, можно и так:
С + Н = 1
Если символ 1 используется в сочетании со знаком «ми-
нус», он означает все, кроме чего-то. Так, множество:
1 – М
содержит всех кошек, кроме кошек мужского пола. Понятно,
что в это множество входят кошки женского пола:
1 – М = Ж
Последний символ, который нам понадобится, — 0. В бу-
левой алгебре он означает пустое множество, т. е. множество,
не содержащее ни одного элемента. Пустое множество полу-
чается в результате пересечения неперекрывающихся мно-
жеств, например, множеств кошек женского и мужского пола:
Ж
´ М = 0
Заметьте: иногда символы 1 и 0 в булевой алгебре ведут
себя подобно своим аналогам в обычной алгебре. Например,
пересечение всех кошек с кошками женского пола есть мно-
жество кошек женского пола:
1
´ Ж = Ж
Пересечение пустого множества с множеством кошек женско-
го пола есть пустое множество:
0
´ Ж = 0
Объединение пустого множества с множеством кошек женс-
кого пола есть множество кошек женского пола:
0 + Ж = Ж
Но иногда результат получается не такой, как в обычной
алгебре. Например, объединение множеств всех кошек и ко-
шек женского пола является множеством всех кошек:
1 + Ж = 1
105
Логика и переключатели
В обычной алгебре такое выражение особого смысла не имеет.
Поскольку множество Ж содержит всех кошек женского
пола, а множество (1 – Ж) — всех кошек противоположного
пола, объединение двух этих множеств равно 1:
Ж + (1 – Ж) = 1
а их пересечение — 0:
Ж
´ (1 – Ж) = 0
Это выражение сыграло важную роль в истории алгебры ло-
гики, поэтому у него есть собственное название — закон про-
тиворечия. Он гласит, что ничто не может быть одновремен-
но собой и своей противоположностью.
А вот в следующем выражении уже проявляется отличие
булевой алгебры от обычной:
Ж
´ Ж = Ж
В булевой алгебре это выражение исполнено смысла: пересе-
чение множества кошек женского пола с самим собой равно
тому же самому множеству. Если мы подставим вместо мно-
жества обычное число, смысл выражения потеряется. Буль счи-
тал, что его алгебра отличается от обычной только следующим
выражением:
X
2
= X
Еще одно выражение, которое с точки зрения обычной алгеб-
ры выглядит странно:
Ж + Ж = Ж
объединение множества кошек женского пола с самим собой
равно тому же самому множеству.
В булевой алгебре предлагается математический способ раз-
решения аристотелева силлогизма. Вспомним две его первые
строки:
Все люди смертны;
Сократ — человек.
Обозначим буквой Л множество всех людей, буквой Х — мно-
жество смертных существ, а буквой К — множество Сокра-
тов. Что означает высказывание «Все люди смертны»? Оно оз-
начает, что пересечение множества людей со множеством смер-
тных существ равно множеству людей:
106
Глава десятая
Л
´ Х = Л
А вот выражение Л
´ Х = Х было бы неверным, поскольку в
множество смертных существ помимо людей входят кошки,
собаки и даже пальмы.
Высказывание «Сократ — человек» можно передать следу-
ющим образом: пересечение множества Сократов (в нем эле-
ментов не так много) со множеством людей (в нем элементов
гораздо больше) равно множеству Сократов
К
´ Л = К
Из первого выражения мы знаем, что множество Л равно
Л
´ Х. Подставим это во второе выражение:
К
´ (Л ´ Х) = К
Используя ассоциативный закон, переписываем это в виде:
(К
´ Л) ´ Х = К
Но, как мы знаем, пересечение К
´ Л равно К, а значит:
К
´ Х = К
Готово! Эта формула говорит о том, что пересечение множе-
ства Сократов со множеством смертных существ равно мно-
жеству Сократов, а это как раз и означает, что Сократ смертен.
Равенство этого же выражения нулю означало бы, что Сократ
не является смертным. Если бы мы нашли, что пересечение
К
´ Х равно Х, то пришли бы к выводу, что Сократ — един-
ственное смертное существо, а все остальные существа бес-
смертны!
Пока что у вас могло сложиться впечатление, что мы стре-
ляем из пушки по воробьям, доказывая математическими ме-
тодами смертность Сократа (особенно учитывая, что сам Со-
крат убедительно доказал свою смертность 2 400 лет назад). Но
теми же методами можно проверять выполнение сложного на-
бора условий. Представьте себе, заходите вы однажды в зоома-
газин и говорите продавцу: «Мне нужна кошка мужского пола,
стерилизованная, белая или рыжая; или кошка женского пола,
стерилизованная, любого цвета, кроме белого; или любая кош-
ка черного окраса». А продавец вам отвечает: «А-а, так вам нуж-
на кошка из множества, описываемого выражением:
(М
´ С ´ (Б + Р)) + (Ж ´ С ´ (1 – Б)) + Ч
107
Логика и переключатели
Верно?» И вы отвечаете: «Да! Именно так!»
Чтобы проверить, правильно ли продавец написал выраже-
ние, забудем на время о понятиях объединения и пересечения и
будем использовать вместо них операторы ИЛИ (OR) и И
(AND). Я специально написал их прописными буквами, чтобы
не путать их с обычными словами. Формируя объединение двух
множеств, вы в действительности выбираете элементы из од-
ного множества ИЛИ из другого множества. В пересечение вы
включаете только элементы, входящие в первое множество И
во второе множество. Кроме того, вместо единицы со знаком
«минус» можно использовать оператор НЕ (NOT). Итак:
•
вместо оператора объединения + пишем ИЛИ;
•
вместо оператора пересечения
´ пишем И;
•
вместо 1 – (все за исключением чего-то) пишем НЕ.
В современных текстах вместо И и ИЛИ иногда использу-
ют знаки
Ù и Ú.
С учетом этих замен выражение приобретает вид:
(М И С И (Б ИЛИ Р)) ИЛИ (Ж И С И (НЕ Б)) ИЛИ Ч
Это условие почти совпадает с тем, что вы с самого начала
выразили словами. Обратите внимание на скобки, которые су-
щественно прояснили ваше пожелание. Итак, вам нужна кош-
ка, входящая в одно из трех множеств:
(М И С И (Б ИЛИ Р))
ИЛИ
(Ж И С И (НЕ Б))
ИЛИ
Ч
Записав эту формулу, продавец может осуществить про-
верку выполнения ваших условий. А вы и не заметили, как я
потихонечку перешел к другой форме булевой алгебры! В ней
буквы уже не обозначают множеств, и им теперь можно при-
сваивать численные значения. Фокус в том, что выбор допус-
тимых значений очень ограничен: 0 или 1. 1 означает «исти-
на»: да, эта кошка удовлетворяет данному условию. 0 означает
«ложь»: нет, эта кошка не удовлетворяет данному условию.
108
Глава десятая
Для начала продавец приносит вам нестерилизованного ры-
жего кота. Условие покупки кошки выглядит так:
(М
´ С ´ (Б + Р)) + (Ж ´ С ´ (1 – Б)) + Ч
а если мы подставим вместо отдельных условий 0 и 1, то так:
(1
´ 0 ´ (0 + 1)) + (0 ´ 0 ´ (1 – 0)) + 0
Обратите внимание, что единице равны только условия М и
Р, поскольку продавец принес рыжую кошку мужского пола.
Теперь нужно вычислить значение этого выражения. Если
оно равно 1, кошка удовлетворяет вашим условиям, 0 — нет.
Проводя вычисления, помните, что наши действия лишь внеш-
не напоминают сложение и умножение, но по сути ими не яв-
ляются. Впрочем, к ним применимо большинство правил
обычной алгебры.
При умножении чисел по правилам булевой алгебры воз-
можны следующие результаты:
0
´ 0 = 0
0
´ 1 = 0
1
´ 0 = 0
1
´ 1 = 1
Иными словами, результат равен 1, только если левый И пра-
вый операнд оба равны 1. Эта операция работает точно так же,
как обычное умножение. Составим для ее обобщения неболь-
шую таблицу, как мы делали в главе 8.
И
0
1
0
0
0
1
0
1
В логическом сложении возможные результаты таковы:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 1
Результат равен 1, если левый ИЛИ правый операнд равны 1.
И эта операция мало отличается от обычного сложения за ис-
ключением того, что сумма двух единиц также равна 1. Пост-
роим таблицу и для операции ИЛИ.
109
Логика и переключатели
ИЛИ
0
1
0
0
1
1
1
1
С помощью этих таблиц легко вычислить значение выра-
жения:
(1
´ 0 ´ 1) + (0 ´ 0 ´ 1) + 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 — кошка нашла свой но-
вый дом!
Вечером того же дня кошка дремлет, свернувшись в клу-
бок у вас на коленях, а вы размышляете, можно ли соорудить
из нескольких тумблеров и лампочки устройство, которое оп-
ределяло бы, подходит вам данная кошка или нет (ничего не
скажешь, ребенок вы странноватый). При этом вы не полнос-
тью осознаете, что готовы совершить судьбоносный шаг: объе-
динить алгебру Джорджа Буля с электричеством, т. е. создать
устройство, принципиально сходное с компьютером, работа-
ющим с двоичными числами. Надеюсь, вы не слишком раз-
волновались.
110
Глава десятая
Чтобы начать эксперимент, соедините лампочку с батарей-
кой, как обычно, но включите в цепь два переключателя, а не один.
Переключатели, соединенные таким способом (один за дру-
гим), называются подключенными последовательно (in series).
Если вы замкнете левый переключатель, не случится ничего.
Ничего не случится, если вы замкнете правый переключатель
при разомкнутом правом. Лампочка загорится лишь при од-
ном условии: если вы включите левый и правый переключа-
тели одновременно.
111
Логика и переключатели
Ключевое слово тут — и. Чтобы по цепи шел ток, должны быть
включены левый и правый переключатели.
Эта цепь решает простую логическую задачу. Говоря по-
просту, лампочка отвечает на вопрос «Оба ли переключателя
замкнуты?». Работу цепи можно суммировать в небольшой
таблице.
Левый переключатель
Правый переключатель
Лампочка
Разомкнут
Разомкнут
Не горит
Разомкнут
Замкнут
Не горит
Замкнут
Разомкнут
Не горит
Замкнут
Замкнут
Горит
В предыдущей главе я рассказал, как представлять инфор-
мацию с помощью двоичных цифр, или битов, — от чисел до
направления пальца Роджера Эберта. Мы говорили, что 0 оз-
начает палец вниз, а 1 означает палец вверх. У переключателя
две позиции, поэтому для его описания достаточно одного
бита. Можно сказать, например, что 0 соответствует разомк-
нутой цепи, а 1 — замкнутой. У лампочки также два состоя-
ния, поэтому и ее можно описать одним битом. Значение 0
этого бита означает, что лампа не горит, а 1 соответствует го-
рящей лампе. Теперь перепишем таблицу.
Левый переключатель
Правый переключатель
Лампочка
0
0
0
0
1
0
1
0
0
1
1
1
Заметьте: если левый и правый переключатели поменять мес-
тами, результат не изменится. Поэтому их можно не разли-
чать и переписать таблицу в том же виде, что ранее мы ис-
пользовали для операторов И и ИЛИ.
Переключатели при
последовательном соединении
0
1
0
0
0
1
0
1
112
Глава десятая
Эта таблица выглядит точно так же, как таблица для опера-
тора И. Проверьте:
И
0
1
0
0
0
1
0
1
Эта простая схема выполняет операцию И булевой алгебры.
Теперь подключим переключатели иначе.
Это параллельный (in parallel) способ подключения. Отли-
чие от предыдущего в том, что лампочка будет гореть незави-
симо от того, включили вы верхний переключатель:
113
Логика и переключатели
нижний:
или оба:
Лампа горит, если включен верхний или нижний переключа-
тель. Ключевое слово здесь или.
И снова схема решает логическую задачу. На этот раз воп-
рос звучит так: «Включен ли хоть один переключатель?» Рабо-
та схемы проиллюстрирована в следующей таблице.
114
Глава десятая
Левый переключатель
Правый переключатель
Лампочка
Разомкнут
Разомкнут
Не горит
Разомкнут
Замкнут
Горит
Замкнут
Разомкнут
Горит
Замкнут
Замкнут
Горит
Изменим таблицу, заменяя разомкнутое положение переклю-
чателя и потушенную лампу 0, а замкнутое положение и горя-
щую лампу — 1.
Левый переключатель
Правый переключатель
Лампочка
0
0
0
0
1
1
1
0
1
1
1
1
Учитывая, что положение переключателя роли не играет, пе-
репишем таблицу в упрощенном виде:
Переключатели при
параллельном соединении
0
1
0
0
1
1
1
1
Вы, вероятно, уже догадались, что это таблица для логическо-
го ИЛИ:
ИЛИ
0
1
0
0
1
1
1
1
А это значит, что два параллельных переключателя выполня-
ют логическую операцию ИЛИ.
Зайдя в зоомагазин, вы сказали следующее: «Мне нужен кот,
стерилизованный, белый или рыжий; или кошка, стерилизован-
ная, любого цвета, кроме белого; или любая кошка черного ок-
раса», а продавец перевел это высказывание в выражение:
(М
´ С ´ (Б + Р)) + (Ж ´ С ´ (1 – Б)) + Ч
Теперь вы знаете, что последовательно соединенные переклю-
чатели выполняют логическую операцию И (выражаемую зна-
115
Логика и переключатели
ком
´), а параллельно соединенные переключатели выполня-
ют логическую операцию ИЛИ (выражаемую знаком +), и
можете соединить 8 переключателей в такую схему:
Б
Р
С
С
Ж
Б
Ч
М
Каждый переключатель в этой схеме помечен буквой —
той же, что и в булевом выражении (
_
Б эквивалентно выраже-
нию НЕ Б и является другой формой записи выражения 1 – Б).
Просмотрев схему слева направо и сверху вниз, вы увидите,
что буквы стоят на ней в том же порядке, что и в выражении.
Каждому знаку
´ в выражении соответствует точка схемы, в
которой два переключателя (или две группы переключателей)
соединены последовательно. Каждому знаку + в выражении
соответствует место на схеме, в котором два переключателя
(или две группы переключателей) соединены параллельно.
Как вы помните, сначала продавец принес нестерилизован-
ного рыжего кота. Включите соответствующие переключатели.
Б
Р
С
С
Ж
Ч
М
Б
116
Глава десятая
Хотя переключатели М, Р и НЕ Б замкнуты, цепь в целом
разомкнута, и лампочка не горит. Затем продавец принес сте-
рилизованную белую кошечку:
Б
Р
С
С
Ж
Ч
М
Б
И снова цепь осталась разомкнутой. И наконец на сцене
появляется стерилизованная серая кошечка:
Б
Р
С
С
Ж
Ч
М
Б
Вот теперь цепь замкнута, а лампочка горит, сигнализируя, что
все ваши условия выполнены.
Джордж Буль такой схемы не разработал. Ему никогда не
хотелось увидеть, как выражения его алгебры оживают в виде
переключателей, проводов и лампочек. Отчасти этому препят-
117
Логика и переключатели
ствовало отсутствие лампы накаливания, которая была изоб-
ретена лишь через 15 лет после смерти Буля. Но работу теле-
графа Сэмюэль Морзе продемонстрировал в 1844 г. — через
десять лет после публикации булевского «Исследования зако-
нов мышления», и в приведенных выше схемах лампочку впол-
не можно было заменить зуммером телеграфа.
Тем не менее, никто в XIX в. не увидел связи между логи-
ческими операторами И и ИЛИ и последовательным и парал-
лельным соединением переключателей. Ни математики, ни
электрики, ни операторы телеграфа — никто. Не сделал этого
даже провозвестник компьютерной революции Чарльз Бэб-
бидж (Charles Babbage) (1792–1871), который переписывался с
Булем, знал о его работах и посвятил большую часть своей жиз-
ни созданию Аналитической Машины, которую век спустя ста-
ли называть прототипом современных компьютеров. Теперь
мы знаем: помочь Бэббиджу могло осознание того, что для ав-
томатизации вычислений вместо колес и рычажков нужно
было использовать телеграфные реле.
Да, телеграфные реле.
|