Алло, робот - Кондратов Александр Михайлович
НА ЯЗЫКЕ ЭЛЕКТРИЧЕСТВА
Вычислительная машина, состоящая из многих тысяч электронных ламп, занимает целый зал. Машины же, работающие на полупроводниках, могут быть величиной с небольшой чемодан.
Есть машины специализированные, созданные только для перевода текстов с одного языка на другой или предсказания погоды. Есть машины универсальные, которые, как говорится, на все руки мастера. По заданной программе они могут и музыку сочинять, и управлять производством, и играть в шахматы, и переводить книги.
Но каких бы больших или миниатюрных размеров ни достигали эти машины, какие бы сложнейшие умственные задачи они ни выполняли, общий принцип их действия един. Электрические импульсы, бегущие внутри машины, выполняют счетную работу.
Что означает костяшка счетов, если она находится посередине прута? Конечно же, ничего. Она должна быть в одном из крайних положений: «или — или». Набирая число на арифмометре, мы ставим рычаги против цифр, а не между ними. Тот же принцип «или — или», «число или нет».
Но ведь и все электрические приборы работают по этому простому принципу. Ток включен или нет. Вспомните обыкновенный электрический звонок. Нажимая на кнопку и отпуская ее, мы можем заставить звонок либо «говорить», либо «молчать». Третьего состояния быть не может: «или — или».
Можно дать один звонок. Можно — два, три, четыре и так далее, до бесконечности. Значит, с помощью электричества можно представить любое число и передать его на расстояние. Запись числа на бумаге не зависит от того, каким почерком мы написали число и чем сделали эту запись — чернилами, карандашом, на пишущей машинке. Число на счетах не зависит от того, большие ли костяшки или маленькие, деревянные или пластмассовые. Все зависит лишь от позиции костяшек.
Точно так же, представляя числа с помощью электрического тока, допустим, с помощью звонка, мы не интересуемся силой и длительностью этих звонков — нам важно лишь их количество.
Три нажатия кнопки — число «три». Сто нажатий кнопки — число «сто», Тысяча нажатий кнопки — число «тысяча». Не многовато ли? Попробуйте-ка дать вручную тысячу звонков! Ведь если вводить в машину числа таким образом, то миллион потребует неделю времени, а миллиард — много лет. Нельзя ли найти какой-либо более простой способ изображать числа на «языке электричества»?
Число «десять» можно записать в виде палочек, а можно и в виде цифр: либо 1111111111, либо 10. Ясно, что пользоваться цифрами удобнее, особенно если числа очень большие.
Нельзя ли применить нашу цифровую систему для электронных машин? Разумеется, можно. Но еще лучше использовать не десятичную систему, а более простую — двоичную. Систему записи чисел, в которой не десять цифр, а только две — нуль и единица.
Число «один» запишется как 1, число «два» — 10, «три» — 11, «четыре» — 100, «пять» — 101, «шесть» — 110, «семь» -—111, «восемь» — 1000, «девять» — 1001, «десять» — 1010, «одиннадцать» — 1011, и т. д. С помощью нуля и единицы можно записать любое число.
Великий немецкий математик Лейбниц даже выбил в честь этого двоичного счисления медаль, по краю которой было написано: «Чтобы вывести из ничтожества все, достаточно единицы».
По сравнению с десятичной эта система записи неэкономна. Чтобы записать восьмерку, в нашей обычной системе нужна одна цифра — 8, а в двоичной — четыре: единица и три нуля. Число 32 для записи в двоичной системе требует шести цифр, 512 — десяти, а 1026 — одиннадцати. В среднем запись в двоичной системе в 3,3 раза длиннее, чем в десятичной.
Зато как упрощаются все арифметические правила! Вам, вероятно, пришлось немало посидеть за таблицей умножения, заучивая ее наизусть (иначе ведь нельзя!) А вот таблица умножения в двоичной системе может быть записана на одной строчке. И выучить ее можно за несколько секунд!
Только и всего! И с помощью таких элементарных действий можно перемножать любые числа. Например, перемножьте сами 1026 на 23 — в двоичной записи это будет выглядеть так:
и убедитесь сами, как легко считать, пользуясь двоичной таблицей умножения.
Впрочем, правила сложения так же просты, как и правила умножения:
(ведь 10 равно числу 2 нашей десятичной системы).
Как видите, вся арифметика сведена к минимуму; тут и знать, по существу, нечего... Но ведь такая простота как раз и нужна для машины-счетчика, в которой работу выполняет электрический ток.
Ток может либо быть, либо не быть. Электрическое реле может быть либо включено, либо выключено. Или — или, да — нет... нуль или единица!
Состояние «без тока» можно считать нулем, а с током — единицей. И тогда легко представить машине любое число, записанное в двоичной системе.
Замечательная двоичная система позволяет машине не только считать, но и совершать логические операции, «рассуждать» и «принимать решения»!
«НУЛЬ И ЕДИНИЦА» — «ПРАВДА ИЛИ ЛОЖЬ»
«Моя фамилия Кондратов». Так это или не так? Правдиво или ложно это высказывание? Очевидно, что правдиво, или, говоря иначе, истинно.
Всякое высказывание, всякая мысль может быть либо истинной, либо ложной. Снова «или — или», «да — нет», «нуль или единица». Нельзя ли вычислять, нельзя ли пользоваться языком чисел и при решении логических задач — задач «на рассуждение»?
Мысль о том, что можно создать своеобразную «алгебру мысли», заменить рассуждения вычислениями, была высказана задолго до создания электронных машин-математиков.
Много веков назад великий греческий ученый и философ Аристотель свел воедино разрозненные обрывки логических учений и создал науку логику, науку об «умении правильно рассуждать». Почти полторы тысячи лет просуществовала неизменной Аристотелева система логики, подобно геометрии, созданной другим гениальным ученым античности — Евклидом.
Но вот у отдельных ученых начинает зарождаться мысль: а нельзя ли усовершенствовать Аристотелеву логику? И даже сделать ее такой же точной, как математика. Особенно горячо пропагандировал эту идею немецкий математик Лейбниц. Он писал: «Споры не при-
дут к концу, если не отказаться от словесных рассуждений в пользу простого исчисления, если не заменить слова неясного и неопределенного смысла определенными символами. После введения их при возникающих противоречиях между двумя философами будет не больше надобности перекрикивать друг друга, чем между двумя бухгалтерами. Не требуется ничего другого, как то, чтобы противники взяли в руки перья, сели за свои конторки и сказали друг другу: давайте-ка вычислять!»
Эта мысль волновала Лейбница давно. «Когда я, будучи еще мальчиком, знакомился с предложениями обычной логики и мне еще была незнакома математика, у меня возникла, не знаю в результате какого мановения, мысль о том, что может быть изобретен анализ понятий, с помощью которого могут быть комбинированы истины и вычисления при помощи чисел», — писал он в конце своей жизни.
Мечты Лейбница начали сбываться лишь в середине прошлого столетия. Ирландский математик Джордж Буль (кстати сказать, отец писательницы Этель Войнич, автора знаменитой книги «Овод») выпускает в свет в Лондоне книгу «Математический анализ логики». Буль доказывает, что правила построения рассуждений можно выразить в математической форме. Доказательство можно вычислять!
В самом деле, каждое высказывание может быть либо истинным, либо ложным. Значит, можно обозначить истинность цифрой 1 и ложность — 0. А затем оказывается, что правила «двоичной арифметики» могут быть применимы и к решению логических задач.