Шрифт:
Интервал:
Закладка:
— Дрю… — попыталась остановить его мама.
— Маркус, Энджи, я прошу прощения.
— Папа, не за что… — начал я.
— Нет, я прошу у вас прощения за то, что мы оставляем вам страну в таком жалком, бедственном состоянии. Страну, где все богатства находятся в руках кучки банкиров, где максимум, на что ты можешь надеяться, это частичная занятость безо всяких социальных гарантий и пенсионного плана, где твоя единственная медицинская страховка — беречь здоровье и надеяться, что не заболеешь, где…
Он стиснул зубы и отвел глаза. Я уже видел у мамы на столе счет от страховой компании с предупреждением о том, что в случае неуплаты мы лишимся медицинской страховки. О том, что будет дальше, не хотелось даже думать.
— Ничего, пап, — выдавил я.
Даже под бородой я видел, как побледнело его лицо, вокруг глаз залегли глубокие морщины, шея покрылась складками. Он стал выглядеть лет на двадцать старше, чем в начале ужина.
— Дрю, не вешай нос, — сказала мама. — Могло быть намного хуже. Многие на свете сказали бы: нам бы ваши проблемы. Давай лучше выпьем по бокалу вина и посмотрим «Ежедневное шоу». Я записала прошлый выпуск.
Когда родители отключили кабельное телевидение, я поставил на старый компьютер программу MythTV и соорудил цифровой видеомагнитофон. Он работал только с некоторыми телеканалами HD-качества, транслируемыми в Сан-Франциско, зато автоматически конвертировал файлы так, чтобы их можно было смотреть на смартфонах или ноутбуках, и убирал рекламу.
Папа опустил глаза и ничего не ответил.
— Энджи, пойдем, — позвал я. Ужин все равно, считай, закончился, а нам предстоит еще долго копаться в даркнетовских файлах.
Глава 9
Если хотите капитально вынести себе мозг, сядьте и вдумайтесь в случайные числа.
Взять, например, число пи, отношение длины окружности к ее диаметру. Каждый, кто учил в школе математику, знает, что пи считается иррациональным числом. Оно представляет собой бесконечную дробь и, насколько нам известно, ни разу не повторяется. Вот как оно выглядит:
3,141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102701938521105559644622948954930381964428810975665933446128475648233786783165271201909145648566923460348610454326648213393607260249141273724587006606315588174881520920962829254091715364367892590360011330530548820466521384146951941511609…
И так далее. С помощью короткой компьютерной программы вы можете вычислять число пи хоть целый день. Да даже хоть до тепловой смерти Вселенной.
Возьмите любую тысячу знаков числа пи, и примерно сотня из них будет единицами, еще сотня — двойками, и так далее. Но в расположении этих цифр нет никакой закономерности. Выберите любую цифру числа пи — например, ту, что стоит 2670-й от начала. Это будет 0. Следующей цифрой окажется 4, потом 7, еще раз 7, затем две пятерки. Если вы, бросая десятигранный кубик, получите такой результат, то сможете назвать его случайным. Но если вам известно, что число 047755 представляет собой цифры числа пи с 2670-й по 2675-ю, то вы догадаетесь, что при следующем броске кости выпадет 5 (снова!) Затем 1. Затем 3. Затем 2.
Это уже не случайное число. Оно предсказуемо. Может, вы и не совсем отчетливо представляете себе, что такое случайность (лично я, например, понятия не имею!), однако она уж точно не подразумевает предсказуемости.
Поэтому число пи никак нельзя назвать случайным, даже при том, что оно обладает многими похожими характеристиками.
А как же с другими числами? Предположим, вы задали компьютеру какой-то псевдослучайный алгоритм, и он выдал вам вот такое число: 2,718281828459045235360287471352662497757. Оно случайное?
А вот и нет. Это, оказывается, число е, называемое также константой Непера. Не вникайте в его математический смысл, это очень сложно. Главное — число е похоже на число пи в том, что каждая его цифра предсказуема.
Ну а если ваш генератор случайных чисел выдаст вот такое число: 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222.
Оно случайное?
Ничего подобного.
А почему? Потому что если я спрошу: «Какая будет сотая цифра в числе, состоящем из тысячи двоек?», ответ будет вам известен. Никаких неожиданностей.
Оказывается, люди давно ломают головы, пытаясь придумать точное определение случайности. И одно из лучших предложенных определений звучит так: «Число является случайным, если самый простой способ представить его — записать».
Ничего не поняли? Без паники, все нормально. Сейчас объясню. Возьмем опять наше старое доброе число пи. Вы можете придумать программу для расчета числа пи, и она будет состоять примерно из двухсот знаков. А само число пи бесконечно, в нем уж точно больше, чем двести символов. Поэтому самый простой способ записать число пи — составить программу, и пусть она выводит на принтер все его бесконечные цифры.
И если уж с числом пи все более-менее легко, то уж с числом 222222222222222222222222222222222222222222 будет совсем просто. На языке Python программа для его записи будет выглядеть так: «print.join([‘2’]*42).» Язык Perl еще компактнее: «print 2×42.» Но даже на велеречивом «бейсике», который по цветистости и многословности может тягаться с языком Шекспира, программа будет не такой уж длинной:
10 PRINT «2» 20 GOTO 10 30 END
В этой программе тридцать символов, то есть гораздо меньше, чем в числе от 222222222222222222222222222222222222222222 до бесконечности. Намного меньше. Поэтому, если случайное число в самом деле непредсказуемо, если оно не имеет легко описываемой структуры или упорядоченности, то можно сказать так: «Число является случайным, если самая короткая программа для вывода его на печать будет длиннее, чем само это число».
Это определение обладает всеми признаками хорошего правила: оно короткое, внятное и строгое. Автором этого четкого правила является математик Грегори Хайтин. Однако впоследствии он сам же накрутил на него множество всяких уточнений. Он так гордился своим достижением, что послал свою статью безумному гению от математики Карлу Гёделю, а в конце добавил еще больше неразберихи, задав вопрос: «Как мы можем узнать, что придуманная нами программа для записи числа является кратчайшей?»
И ведь замечание действительно верное. Программисты то и дело предлагают новые способы решения задач. И, возможно, в якобы случайном числе скрыта некая закономерность, о которой вы даже не догадываетесь. Например, я попросил вас написать программу для записи вот такого числа: 6464126002437968454377733902647251281941632007684873625176406596754069362175887930785591647877727473927200291034294956244766130820072925073452917076422662104767303786316995423745511745652202278332409680352466766319086101120674585628731741351116229207886513294124481547162818207987716834634132236223411778823102765982510935889235916205510876329808799316517252893800123781743489683215159056249334737020683223210011863739577056747386710217321237522432524162635803437625360680866916357159455152781780392177432282343663377281118639051189307590166665074295275838400854463541931719053136365972490515840910658220181473479902235906713814690511605192230126948231611341743994471483304086248426913950233671341242512386402665725813094396762193965540738652422989787978219863791829970955792474732030323911641044590690797786231551834959303530592378981751589145765040802510947912342175848284188195013854616568030175503558005494489488487135160537559340234574897951660244233832140603009593710558845705251570426628460035.
Вглядывайтесь сколько хотите, вряд ли вы найдете в нем хоть какую-то закономерность (а если найдете, то она — плод вашего воображения). Значит, это число случайное? Ничего подобного. Оно — часть числа пи, его цифры со 100 000-й по 101 000-ю. Теперь вы можете написать очень короткую программу для записи этого числа: надо всего лишь попросить компьютер напечатать число пи и добавить фразу: «начать со 100 000-й цифры и закончить через 1000 цифр».
Идея Хайтина заключается вот в чем: невозможно с уверенностью утверждать, может ли некое длинное число быть напечатано с помощью программы более короткой, чем это число. То есть ни