Ошибка в математике мироздания

Три — один — четыре — один — пять — девять… Лёнька бормотал про себя знаки, пока терминал выводил результат навигационной поправки. Бормотание было необязательным: корабельный…

Ошибка в математике мироздания

Три — один — четыре — один — пять — девять…

Лёнька бормотал про себя знаки, пока терминал выводил результат навигационной поправки. Бормотание было необязательным: корабельный вычислитель считал без помощи младшего преподавателя математики, приписанного к научной группе «Эвклида». Но привычка осталась с университета, где Лёнька проверял чужие курсовые и обязательно шептал цифры — будто слово, произнесённое вслух, становилось честнее.

Терминал мигнул.

Лёнька посмотрел на экран, потом на свой блокнот, потом снова на экран.

— Ерунда какая-то.

Поправка к вектору торможения отличалась от расчётной на величину, которой не должно было существовать. Не на порядки — на крошечную, тонкую дрянь в четвёртом знаке. Само по себе это ничего не значило. Навигационный допуск позволял расхождение. Но Лёнька не проверял допуск — он проверял формулу. А формула была такой, что ошибки в ней не бывает, если ты не перепутал знак или не ввёл кривую константу.

Он ввёл π руками. Не из базы — из головы. 3,14159265358979…

Результат совпал с расчётным.

Лёнька вернул значение из корабельной базы. Терминал снова выдал расхождение.

Он откинулся на спинку кресла, посмотрел на потолок вычислительного отсека — низкий, обшитый серыми панелями, с одной мёртвой лампой в углу, которую никто не менял третий месяц — и сказал потолку:

— Ладно. Значит, я дурак.

Потолок промолчал. Мёртвая лампа не загорелась.

Лёнька открыл протокол проверки констант. На «Эвклиде» всё было задокументировано: каждая база данных, каждая библиотека, каждый набор постоянных. Корабль летел к Проксиме уже четвёртый год, и половина бортовых систем использовала π в том или ином виде — навигация, связь, моделирование, даже климат-контроль, потому что кто-то из инженеров зачем-то считал объём вентиляционных каналов через площадь сечения.

Он вывел значение π из корабельной базы и положил рядом с табличным.

Третий знак.

В базе стояло 3,14059…

Лёнька моргнул. Перечитал. Закрыл окно. Открыл снова.

3,14059.

Единица на пятом месте после запятой вместо единицы на третьем — нет, стоп. Он сбился. Он смотрел на экран и не мог прочитать число, которое знал с восьми лет. Руки сделали то, что голова отказывалась: он взял блокнот и выписал оба значения столбиком.

`` Табличное: 3,14159265... Корабельное: 3,14059265... ``

Один разряд. Единица пропала и заменилась нулём. Не ошибка округления — замена цифры.

— Бред, — сказал Лёнька.

Он проверил хэш-сумму базы. Совпала с эталонной. Это означало, что база не повреждена, не подменена, не модифицирована после последнего обновления. Либо хэш врал, либо значение π в корабельной базе всегда было таким.

Всегда было неправильным.

Четыре года. Четыре года корабль летел с кривым числом π в базе, и никто не заметил, потому что навигационный допуск покрывал разницу, климат-контроль справлялся, а моделирование… Лёнька задумался. Моделирование использовало π в расчётах гравитационного профиля. Если значение отличалось на одну десятитысячную, результат сдвигался. Не катастрофически. Но сдвигался.

Он открыл лог гравитационного моделирования за последние полгода и начал искать расхождения с наблюдаемыми данными.


На это ушло два часа. Лёнька забыл про ужин, про физкультурный час и про обещание Нике починить ей компилятор учебных задач.

Расхождений не было.

Точнее, наблюдаемые гравитационные данные совпадали не с правильным π, а с кривым. С тем, что сидел в базе. С 3,14059.

Лёнька выписал это в блокнот, посмотрел на запись, аккуратно положил ручку и встал. Прошёлся по отсеку. Сел. Снова встал. Подошёл к иллюминатору — узкой щели в обшивке с тройным стеклом, через которое было видно абсолютно ничего полезного, только чёрное и редкие точки.

Фактические данные подчинялись неправильной константе.

Это означало одно из двух. Либо у Лёньки поехала крыша — и это был хороший вариант, рабочий, с ним можно жить. Либо π в этой вселенной действительно равнялось 3,14059, а всё, что он знал с восьми лет, было неправильным.

Он вернулся к терминалу.

— Окей. Допустим, я псих. Проверим.

Лёнька вытащил из учебной библиотеки задачу, которую помнил наизусть: вычисление длины окружности с радиусом в один метр. Школа, шестой класс, здравствуйте. Формула C = 2πr. При r = 1 длина окружности равна 2π. То есть 6,28318…

Он запустил задачу на корабельном вычислителе. Результат: 6,28118…

Потом написал запрос к датчику кольцевого ускорителя частиц в лабораторном модуле. Ускоритель был маленький, учебно-исследовательский, но кольцо у него было физическим — металлическим — и его длину можно было измерить. Датчик вернул длину окружности. Лёнька разделил на диаметр.

3,14059.

Руки стали холодными. Не от страха — от чего-то другого, для чего у Лёньки не было слова. Как будто пол под ногами остался на месте, но перестал быть твёрдым.


Ника нашла его в вычислительном отсеке в одиннадцать вечера. Она работала бортинженером, была старше Лёньки на четыре года, носила короткую стрижку и имела привычку решать чужие проблемы раньше, чем их озвучат.

— Компилятор, — сказала она с порога.

— Что?

— Ты обещал починить компилятор.

— А. Да. Слушай, сядь.

Ника посмотрела на его лицо, на блокнот, на экран. Потом села.

— Что случилось?

— Скажи мне число π.

— Три-четырнадцать-пятнадцать-девяносто два-шестьдесят пять. Дальше не помню. А что?

— Три-четырнадцать или три-четырнадцать?

— Лёнь, ты уже начинаешь пугать.

Он развернул к ней экран.

— Смотри. Корабельная база. Значение π. Третий знак после запятой.

Ника посмотрела.

— Ноль?

— Ноль. А должна быть единица. 3,14159 — а в базе 3,14059.

— Ну, ошибка в базе. Бывает.

— Хэш-сумма совпадает с эталонной. База не менялась с загрузки. Это значение было в ней с самого начала.

Ника помолчала. Она была инженером — она понимала, что значит неповреждённая хэш-сумма.

— Хорошо. Допустим, при загрузке вбили криво.

— Я проверил по кольцевому ускорителю. Измерил длину окружности, разделил на диаметр. Физическое измерение, Ника. Железо, датчик, кольцо. Три-четырнадцать-ноль-пятьдесят девять.

Она не ответила. Лёнька видел, как её взгляд переключился — из режима «коллега несёт чушь» в режим «инженерная задача, которая не сходится».

— Покажи, — сказала она.

Он показал. Весь путь: формулу, расхождение, ручной ввод, базу, хэш, гравитационное моделирование, ускоритель.

Ника прошла каждый шаг. На ускорителе она остановилась, запросила повторное измерение, получила тот же результат, откинулась и скрестила руки.

— Датчик.

— Что датчик?

— Датчик калибруется через бортовую систему. Если в базе кривое значение, калибровка тоже кривая. Мы ходим по кругу.

Лёнька кивнул. Он уже думал об этом.

— Поэтому мне нужен внешний источник. Что-нибудь, что не зависит от корабельной базы.

— У нас нет внешнего источника. Мы в межзвёздном пространстве.

— У нас есть звёзды. Угловые размеры. Параллакс. Если я возьму наблюдаемые данные и пересчитаю расстояния с правильным π и с кривым, один из вариантов совпадёт с фактической навигацией.

Ника молчала секунд десять.

— Делай.


Лёнька работал до трёх ночи. Ника ушла в час, вернулась в два с двумя кружками кофе и молча села рядом.

Результаты были однозначными.

Фактическая навигация — реальное положение корабля, подтверждённое пульсарными маяками — совпадала с расчётом, использующим π = 3,14059. Табличное π давало ошибку. Маленькую, но устойчивую.

Вселенная считала с другим числом.

Лёнька сидел и смотрел на экран, и в голове у него было пусто и гулко, как в пустом ангаре.

— Лёнь, — сказала Ника тихо. — Это значит, что…

— Что π — не то, что мы думали. Да.

— Нет. Это значит, что π — не константа.

Он повернулся к ней. Ника смотрела не на экран — она смотрела в стену, и лицо у неё было такое, какое Лёнька видел один раз, когда на «Эвклиде» отказал маршевый двигатель: сосредоточенное, спокойное, с чуть сжатыми губами.

— Константа не может быть неправильной, — продолжила она. — Если физическое измерение даёт другое число, значит, либо геометрия пространства не евклидова — что мы бы знали — либо значение менялось.

— Менялось.

— Кем-то.

Лёнька хотел сказать «это бред», но не сказал. Потому что числа не врут. Числа — единственное, что не врёт никогда.

— Помнишь, — он заговорил медленно, подбирая слова, — в прошлом месяце гравиметр показал скачок, и Костин списал на солнечный ветер?

— Помню.

— Я пересчитал тот скачок с обоими значениями. С кривым π его не было.

— В смысле — не было?

— В смысле, при π = 3,14059 данные гравиметра за тот день абсолютно ровные. Скачок появляется, только если считать с правильным значением.

Ника медленно поставила кружку на стол.

— То есть аномалия была не в пространстве. Она была в наших ожиданиях.

— Да.

Тишина. Гудение вентиляции. Где-то далеко в корпусе щёлкнул клапан — термальный контур регулировал давление, как делал это каждые двадцать минут.

— Я полгода смотрю на данные моделирования, — сказал Лёнька. — Они идеально совпадают с наблюдениями. Идеально. Ни одного статистического выброса. Ни одного. Ты понимаешь, что это значит?

— Что не бывает.

— Что не бывает. В реальной физике всегда есть шум. Случайные отклонения. Квантовые флуктуации. Тепловые помехи. Хоть что-то. А тут — ноль. Как будто кто-то подогнал данные под модель.

Ника встала. Прошлась по отсеку — четыре шага в одну сторону, четыре обратно.

— Или модель под данные.

Лёнька посмотрел на неё.

— Нет, — сказала она. — Модель под данные — это нормальная наука. А данные под модель…

— Это симуляция.

Слово повисло в воздухе. Маленькое, шипящее слово. Лёнька произнёс его тихо, почти между делом, как будто речь шла о сбое в компиляторе, а не о фундаменте всего, что он знал.

— Допустим, — Ника остановилась. — Чисто гипотетически. Допустим, кто-то запустил модель вселенной. Задал параметры. И в параметрах значение π было 3,14059. Не потому что хотел обмануть, а потому что…

— Потому что забыл обновить.

Она посмотрела на него.

— Или скопировал из старой версии, — добавил Лёнька. — Или округлил. Или ему было всё равно. Мы же тоже так делаем, когда запускаем учебную модель. Берём приближённое значение, если точное не критично.

— Для учебной модели — да.

— А если для того, кто запускал, это и есть учебная модель?

Ника села. Не потому что устала — потому что ногам не хватило аргумента стоять.


В четыре утра сработал таймер дежурного оповещения. Через двадцать минут начиналась утренняя проверка систем, и вычислительный отсек нужно было освободить для навигационной группы.

Лёнька сохранил всё на личный носитель. Дважды. Потом посмотрел на Нику.

— Никому не говори.

— Почему?

— Потому что я не знаю, что будет, если сказать.

— Лёнь, это не…

— Если это симуляция, — он перебил, и голос у него был ровный, как линия на графике без шума, — то у неё есть администратор. И администратор, может быть, мониторит аномалии. Мы только что два часа дёргали за ниточку, которую никто четыре года не трогал.

Ника замолчала. Потом кивнула.

— Сколько тебе нужно времени?

— Не знаю. День. Два.

— У тебя есть до послезавтра. Потом навигационная группа начнёт пересчёт курса к точке торможения, и если в базе кривое π…

— Если в базе правильное π для этой вселенной, — поправил Лёнька, — то навигационная группа отработает штатно. Как отрабатывала четыре года. Проблемы начнутся, если кто-то исправит значение на «настоящее». На наше настоящее. Которое здесь неправильное.

Он встал, сунул блокнот в карман и пошёл к двери.

— Лёнь.

Он обернулся.

Ника сидела в кресле, подтянув ноги, кружка стояла на столе, и синий свет терминала делал её лицо плоским, как на старых фотографиях.

— Если ты прав, — сказала она, — и это модель… то мы не можем её починить. Мы можем только сломать.

— Я знаю.

— И что ты будешь делать?

Лёнька стоял в дверном проёме и думал о числе π, которое знал с восьми лет, о звёздах за тройным стеклом, которые подчинялись другому числу, и о том, что самое страшное в ошибке администратора — не сама ошибка, а момент, когда администратор замечает, что кто-то её нашёл.

— Считать, — сказал он.

Дверь закрылась. В вычислительном отсеке остался синий экран, две пустые кружки и тишина, в которой гудела вентиляция — ровно, без единого сбоя, с точностью до третьего знака.