Увидев уведомление в группе, Ли Дун немедленно открыл список участников в поисках аватара Римана.
Конечно же, всё оказалось именно так, как он и ожидал.
Хотя Бернхард Риман и вступил в группу, его аватар, точно так же как и у Гаусса, был серым.
Ли Дун испустил долгий вздох облегчения.
«Похоже, эти два бога математики по-прежнему ограничены правилами группы...»
«Гаусс упоминал, что ему нужно повысить свои полномочия...»
Подумав о полномочиях, он сразу же нажал на кнопку функций в настройках группы.
В интерфейсе его титул по-прежнему значился как [Лидер группы (стажер)].
Но счетчик [Пригласить участников группы] теперь изменился на [10]!
«Десять слотов для приглашений за один раз? Неужели это награда за то, что я вынес вычислительную мощность Римана?»
Однако значки [Загрузить файл] и [Перенос этих] рядом с ними по-прежнему были недоступны.
«Мне предстоит пройти еще долгий путь».
Ли Дун покачал головой (OK, устойч.) и перевел внимание обратно на Остаточную рукопись по вычислению нетривиальных нулей дзета-функции — ключ к повышению его полномочий.
Все его характеристики достигли 0,3, что равнялось одной трети Ньютона. (Ньютон:??? Хм.)
Глядя на эту рукопись снова, он наконец понял, чем на самом деле занимался Риман в свои последние дни.
Риман вычислял эти нули вовсе не для того, чтобы доказать гипотезу Римана. Всем сердцем он преследовал закон распределения простых чисел!
Простые числа подобны призракам в мире чисел.
Чтобы поймать этих призраков, Риман написал явную формулу для точного вычисления количества простых чисел меньше заданного числа x.
И в этой формуле нетривиальные нули дзета-функции действуют подобно частотам, управляющим колебаниями в распределении простых чисел.
Вычислив эти нули, можно полностью раскрыть тайны простых чисел.
«Что ж, раз мне всё преподнесли на блюдечке с голубой каемочкой, пожалуй, стоит попытаться...»
Вдохновленный Ли Дун вытащил из ящика стола стопку свежих черновиков...
«Чтобы найти нули, мне нужно отыскать смену знаков на линии, где вещественная часть дзета-функции равна одной второй...»
Он записал на бумаге Z-функцию Харди Z(t), готовясь вручную методом грубой силы рассчитать первый нетривиальный ноль.
Ли Дун только вошел во вкус и вывел три строчки вывода, как тут же остановил перо.
«Самый первый шаг требует вычисления гамма-функции от одной четвертой плюс одна вторая умноженная на i, что включает комплексную переменную?»
«Какого чёрта эту штуку вообще предполагается считать вручную?»
Отказываясь признавать поражение, Ли Дун яростно проанализировал задачу в голове.
«Мне пришлось бы использовать формулу Стирлинга для асимптотического разложения, затем разделить вещественную и мнимую части. После этого потребовалось бы рассчитать высокоточные значения трансцендентного числа пи и натурального логарифма. Наконец, пришлось бы выполнить разложение тригонометрических функций в ряд Тейлора».
«И это ради вычисления всего одной точки!»
«Чтобы поймать точный момент смены знака, мне пришлось бы плотно набрать точки между t=14 и t=15».
«И для каждой отдельной точки выборки мне пришлось бы повторять всю эту длинную, невероятно утомительную цепочку элементарной арифметики...»
«Если я допущу хоть одну ошибку при переносе разряда, все предыдущие усилия пойдут прахом!»
И точно так же неукротимый Ли Дун был полностью усмирен.
Но наконец он был лидером группы. Он мог вести себя довольно бесстыдно...
«Погодите, почему я вообще мучаюсь с этим вручную?»
«На дворе двадцать первый век! У меня есть компьютер! Заставлять человеческий мозг выполнять работу калькулятора — не полнейшее ли это безумие?»
Он немедленно открыл свой ноутбук Леново и запустил интерфейс Пичарм для языка Питон.
Используя свои базовые знания программирования, он напрямую перевел самую фундаментальную формулу суммирования Эйлера — Маклорена в код.
Чтобы обеспечить точность, он импортировал высокоточную библиотеку чисел с плавающей точкой из Пайтона и принудительно задал сохранение двадцати пяти значащих цифр. Затем он начал сканирование методом грубой силы, плотно выбирая точки для t в поисках нулей.
«Запуск!»
Значения нулей начали прокручиваться на экране: сто... пятьсот... тысяча...
Но Ли Дун вскоре столкнулся с проблемой.
Кулер ноутбука завыл на повышенных оборотах, а клавиатура стала горячей на ощупь.
Выполнение кода на экране постепенно замедлилось.
В написанном им коде отсутствовала оптимизация памяти. Все промежуточные переменные и исторические точки этих от каждого вычисления просто сваливались в список без какого-либо механизма их высвобождения.
Огромное количество временных объектов от высокоточных операций росло как на дрожжах. В диспетчере задач операционной системы потребление памяти процессом Пайтона взлетело с четырех гигабайт до четырнадцати!
К тому моменту, когда расчеты дошли до четырехтысячного сто двадцатого нуля, экран полностью завис.
Курсор мыши превратился в крутящийся кружок, и система совсем не реагировала на щелчки.
Затем экран стал синим.
[КОД ОСТАНОВКИ: УПРАВЛЕНИЕ_ПАМЯТЬЮ]
Ли Дун тупо уставился на экран.
«Проклятый Леново», — выругался про себя он.
Совсем забыв, что его собственный код тоже был полнейшим мусором.
Но это лишь сильнее потрясло Ли Дуна.
«Пусть мой компьютер отстойный, а код требует оптимизации, но это все равно кремниевый продукт, созданный спустя более чем сто пятьдесят лет после эпохи Римана».
«Как, чёрт возьми, Риман умудрился вручную с таким трудом вычислить первые тысячу сто четыре нуля?»
«Это просто не укладывается в голове...»
Ли Дун немедленно закрыл глаза, выкрутил свой устрашающий показатель характеристики ноль целых три десятые на максимум и снова погрузился в ту рукопись Последние слова Римана.
Он больше не смотрел на базовые выводы в начале, обратившись к второй половине рукописи — к тому, что выглядело как небрежные каракули алгебраических подстановок, приближений методом перевала и смещений путей интегрирования.
Он протаращился на них добрых двадцать минут, прежде чем открыть глаза.
«Так вот как он это сделал...»
Ли Дун пришел в восторг.
«Это не обычный математический вывод. Это... алгоритмическое понижение размерности».
Он наконец всё понял! Более ста лет назад, чтобы преодолеть вычислительные пределы человеческого тела, Риман кропотливо изобрел совсем новый алгоритм упрощения.
Риман не занимался глупым перебором каждого члена бесконечного ряда силой грубой мощи, как это делал код Ли Дуна на Пайтоне.
Он использовал метод наискорейшего спуска (метод перевала) для асимптотического разложения интегрального выражения дзета-функции. Свернув симметричные члены главной суммы и остатка, он в одиночку снизил вычислительную сложность с линейного роста от мнимой части t вплоть до корня из t!
В этом и заключался истинный секрет, позволивший Риману вычислить тысячу сто четыре нуля при помощи лишь ручки и бумаги! Но этот алгоритм вместе с преждевременной смертью Римана и утерей его рукописи оказался погребен под пылью истории.
Ни у кого больше его не было. Зато он был у Ли Дуна!
«Если я смогу воплотить этот алгоритм из рукописи Римана в современном компьютерном коде...»
Ли Дун возбужденно облизал губы.
Однако после первоначального волнения он успокоился.
Он знал лишь самые базовые основы Пайтона.
Но чтобы безупречно перенести математическое оптимизационное мышление Римана в низкоуровневую архитектуру кода современного компьютера, потребовалась бы невероятно глубокая база в области информатики.
Структуры этих, управление указателями памяти, оптимизация алгоритмов по принципу обмена памяти на время и даже более низкоуровневые языки вроде Си и Си-плюс-плюс.
Он не знал из этого совсем ничего.
«Похоже, мне придется всерьез засесть за учебу и хорошенько погрызть гранит компьютерных алгоритмов!»
Если он сможет заново представить миру алгоритм Римана, реализовав его в коде, это гарантированно произведет фурор как в математическом сообществе, так и в сфере информатики!
Настройки чтения
Размер
18
Шрифт
Выравнивание
Тема
Интервал
1.7
Ширина
Оригинал текста
Отметки прогресса
Мой учебный чат полон настоящих небожителей — Главы
Список глав загрузится при открытии.
Комментарии
Войдите, чтобы оставить комментарий.