Квантовая физика приводит к возникновению любопытной проблемы: даже если бы существовала возможность проследить многовековую траекторию каждого атома золота из моих коронок, если за это время два или более атома золота – один из которых происходил из наследия Цезаря, а другой из внешних источников – сталкивались (или хотя бы оказывалось очень близко друг к другу), определить, какой из атомов какой, после такого “столкновения” было бы в принципе невозможно. Атомы и более мелкие частицы не имеют никаких опознавательных признаков вроде отпечатков пальцев и не могут отслеживаться непрерывно, поэтому не всегда можно говорить о постоянной тождественности частиц, и это становится очередным препятствием к установлению фактов о золоте.
Будь наша вселенная хоть детерминистической, хоть нет, компьютеры созданы быть детерминистическими, несмотря на субмикроскопический шум и даже квантовую случайность, и нейтрализуют эти флуктуации, будучи цифровыми, а не аналоговыми. (Прекрасным примером этого служит описанная в главе 66 игра “Жизнь” Конвея, но цифровой детерминизм повсеместен.) Фундаментальная идея цифровизации с целью детерминизма заключается в том, что мы можем специально создавать инертные исторические факты. Принудительная разбивка всех ключевых событий на две категории – высоко- и низковольтные, ВКЛ и ВЫКЛ, 0 и 1 – гарантирует, что микроразличия (между разными значениями высокого напряжения, разными типами ВКЛ, разными вариантами 0) безжалостно отбрасываются. От них ничто не зависит, поэтому они исчезают без следа, как факты о подлинных исторических вариациях, никак не влияющих на последующие цепочки состояний компьютера. К примеру, ваш друг скачивает песню с сайта и записывает ее на два CD-диска. Два этих диска – мы назовем их А и Б, но не будем подписывать, – само собой, представляют собой цифровые дубликаты. Попросите своего друга “скопировать” один из них на ваш ноутбук в совершенно темной комнате. Не уточняйте, какой из дисков использовать, а затем попросите его подержать оба диска в руках (чтобы невозможно было установить, какой из них использовался, по отпечаткам его пальцев или следам ДНК), бросить их в мешок с другими дисками и хорошенько его потрясти. Теперь у нас есть два возможных инертных исторических факта:
(а) На вашем ноутбуке хранится копия с диска А.
(б) На вашем ноутбуке хранится копия с диска Б.
На микроскопическом уровне структура любой физической кодировки двоичного потока песни отличается от структуры любой другой кодировки. Если “скопировать” один из дисков в оперативную память (ОЗУ) компьютера, картина распределения напряжения в ОЗУ также будет обладать уникальной структурой, а если затем “скопировать” файл из ОЗУ на жесткий диск или на флешку, для новых копий также будут характерны микроскопические отличия. Для удобства этот процесс называется копированием, но на самом деле он представляет собой создание нового непрерывного или аналогового физического сигнала, обладающего собственной уникальной структурой, поскольку именно так устроен мир на уровне электронов и протонов. Но гений цифровизации в том, что вся эта мелкая структура “игнорируется”, стирается в процессе “корректировки к норме”. Когда существует норма наподобие алфавита, неважно, кАк иМЕнНо выглядят отдельные символы, ведь все они читаются одинаково. Для компьютера это по-прежнему нули и единицы.
Таким образом, если только на одном из дисков не содержится “ошибки”, различимой на уровне цифровой идеализации (то есть переключенного бита – нуля на месте единицы или наоборот), определить, с какого диска произошло копирование, будет невозможно. Цифровизация не позволяет индивидуальности двух дисков распространяться на последующие версии и проявляться при конверсии цифрового сигнала в аналоговый, осуществляемой колонками или наушниками. Некоторые любители музыки могут похвастаться “абсолютным слухом” и по звучанию отличают виниловые пластинки от лучших цифровых дисков, а сжатые цифровые музыкальные форматы (например, MPEG) от несжатых, но ни один меломан не скажет вам, с одного или с разных дисков проиграли две записи одной и той же музыки. Это инертный исторический факт, который не поддается определению не только на слух, но и при электронной микроскопии структуры “копий” этих дисков в оперативной памяти. Если бы нашелся человек, способный различать такие “копии”, он стал бы первым кандидатом на обладание сильнейшим экстрасенсорным восприятием, поскольку цифровизация создает физический барьер, предотвращающий передачу информации, которая могла бы дать подсказку гадающему.
Компьютер – это цифровое устройство, а потому не составляет труда заставить его выполнить несколько триллионов шагов, затем привести его обратно в точно то же самое (цифровое) состояние, в котором он пребывал до этого, и наблюдать, как он исполняет точно те же самые несколько триллионов (цифровых) шагов снова и снова.
Погодите-ка! Вы утверждаете, что компьютеры детерминистичны? Что их можно заставить повторять один и тот же триллион шагов снова и снова? Да ладно! Почему же тогда мой ноутбук то и дело меня подводит? Почему мой текстовый процессор завис во вторник, хотя я делал то же самое, что прекрасно работало в понедельник?
Но вы делали не совсем то же самое. Он завис не потому, что он индетерминистичен, а потому, что во вторник он пребывал не в точно том же состоянии, что и в понедельник. Должно быть, в промежутке ваш ноутбук сделал что-то, что подняло скрытый “флаг” или задействовало ту часть текстового процессора, которую вы никогда прежде не активировали, и это привело к переключению какого-то бита, после чего он сохранился в новом положении при выключении компьютера, а теперь текстовый процессор споткнулся об это крошечное изменение и завис. И если вы каким-то образом сумеете вернуть его в точно то же самое состояние, в котором он пребывал во вторник утром, он зависнет снова.
Что насчет “генератора случайных чисел”? Я думал, в мой компьютер встроено устройство для создания хаотичности по требованию.
В каждый компьютер сегодня встроен генератор “случайных чисел”, к которому при необходимости может обращаться любая работающая на компьютере программа. (До появления компьютеров люди покупали для своих исследований книги, все страницы которых были заполнены расставленными в случайном порядке числами, сгенерированная последовательность которых проходила все проверки на случайность, разработанные математиками. Само собой, каждый экземпляр конкретного издания такой книги содержал одну и ту же случайную последовательность. Одну из лучших книг в 1955 г. опубликовала организация RAND Corporation – в этой книге содержался миллион случайных цифр.) Последовательность чисел, генерируемых так называемым генератором случайных чисел, на самом деле не случайна, а лишь псевдослучайна: она “математически сокращаема” в том смысле, что эту бесконечно длинную последовательность можно заключить в конечно определенный механизм, который поставит ее генерацию на поток. Допустим, например, что ваш генератор случайных чисел – это программа, описание которой уложится, скажем, в один мегабайт (восемь миллионов бит), но генерируемая ею последовательность (всегда одна и та же) на самом деле бесконечна. Если бы вы захотели переслать кому-то эту бесконечную последовательность, вам бы не пришлось для этого отправлять бесконечно длинное электронное письмо, записывая последовательность буквально. Вы могли бы просто переслать свой алгоритм размером в мегабайт, и ваш визави получил бы доступ ко всей бесконечной последовательности. В этом суть генератора псевдослучайных чисел. При каждом перезапуске генератора случайных чисел – например, при каждой перезагрузке компьютера – он всегда начинает выдавать точно такую же последовательность цифр, но эта последовательность столь же очевидно лишена закономерностей, как если бы ее генерировали подлинно случайные квантовые флуктуации. Можно сказать, что этот генератор – встроенная “таблица случайных чисел”, подобная той, что вы получите на очень длинной петле видеопленки, записывая результаты миллионов вращений рулетки при честной игре. Петля всегда возвращается “к началу” – к моменту запуска компьютера. Иногда это важно. Компьютерные программы, обращающиеся к генератору случайных чисел в различных точках “выбора”, все равно будут проходить одну и ту же последовательность состояний, если их снова и снова будут перезапускать, а если вам захочется проверить программу на баги, вы всегда будете тестировать одну и ту же “случайную выборку” состояний, если только не предпримете необходимые шаги (достаточно простые), чтобы заставить программу время от времени выбирать следующее “случайное” число из нового фрагмента потока цифр.