Все целые числа конечны. Это значит, любое из них может быть представлено конечным рядом десятичных цифр. Даже очень большие, такие как число Грэма, требуют поистине невообразимого, но, всё же, конечного количества разрядов.
А что если расширить наш инструментарий и рассмотреть целые числа с принципиально бесконечным количеством разрядов? Скажем, что представляет собой число x = ...6666666666666 с цепочкой шестёрок, уходящей без конца налево?
Один из основных результатов теории категорий (одного из наиболее общих разделов современной математикики) состоит в том, что информация об объекте содержится не в нем самом, а в отношениях с другими объектами. Значит, ответ на вопрос: "что это за штука? " кроется в ответе на вопрос: "как эта штука взаимодействует с другими штуками? "
Вооружимся школьным калькулятором и начнем экспериментировать.
66666666666*3 = 99999999998
99999999998+2 = 200000000000
Ух-ты, как много нулей! А ведь если шестёрок будет бесконечно много, то самая старшая двойка уйдет бесконечно далеко и вовсе скроется за горизонтом. Таким образом, мы получим число, выраженное бесконечной последовательностью нулей и значит, неотличимое от нуля. Неотличимое в смысле теории категорий, то есть по отношению к другим числам: оно не меняет числа при сложении и превращает в себя при умножении.
Мы приходим к выводу, что число x = ...666666666, решает уравнение
3x + 2 = 0. Но ведь у этого уравнения уже еcть решение x = −2/3 = −0.66666666666...
И наверняка, не случайно, но это решение тоже состоит из кучи шестёрок, которых тоже бесконечно много, но не слева, а справа!
Получается, что в каком-то смысле бесконечноразрядные целые числа эквивалентны бесконечноразрядным дробям? Или от нас скрывали, что линейные уравнения имеют два решения?
Давайте попробуем ещё. Скажем, есть такая дробь 2/7 = 0.285714285714285714... Продолжим периодическую цепочку налево
...285714285714.285714285714...
И отбросим дробную часть, превратив в бесконечноразрядное целое ...285714285714285714. Умножим его на 7 и получим
...9999999999999998,
a прибавив 2, опять придём к бесконечноразрядному нулю. То есть, построенное нами бесконечноразрядное целое число решает уравнение 7x + 2 = 0 и равно −2/7. Кстати, с этой точки зрения число ...999999999998 = −2, поскольку, как мы уже дважды видели, решает уравнение x + 2 = 0.
Получается, что в придуманных нами бесконечноразрядных целых числах содержатся и отрицательные числа и почти все дроби. Такие числа называются 10-адическими, и они образуют самостоятельную числовую систему, открытую и изученную Куртом Гензелем в конце XIX века. Если использовать в качестве основания системы не 10, а какое-нибудь простое число 𝑝, то такая 𝑝-адическая числовая система уже будет столь же мощной, что и система вещественных чисел! В ней можно извлекать корни, строить непрерывные функции, вычислять синусы и экспоненты и даже кое-что такое, чего нельзя делать в вещественных числах. Например, в 5-адических числах есть корень из −1, а в 10-адических можно найти нетривиальные автоморфные числа, то есть такие, которые при возведении в квадрат не изменяются. Об этих числах, об их теоретический и практической значимости я подробно писал на Хабре.
Здесь я хочу остановиться на не самом полезной, но вполне впечатляющей возможности, которую дают 𝑝-адические числа.
Из-за особенностей округления в 𝑝-адических числах в них можно работать с невероятно большими числами, правда, только с младшими разрядами, наименее значащими в вещественном мире, но в модулярных арифметиках и они способны нести полезную информацию. Например, нам не составит особого труда вычислить младшие разряды знаменитого числа Грэма. Оно определяется через т.н. гипероперации — обобщения арифметических операций. Одна из них — тетрация, представляет собой "башню" возведений в степень. Значение этой функции быстро становятся такими большими, что в обычных вещественных числах с ними уже не поработаешь, тогда как в 𝑝-адической арифметике вычисления не занимают сколь-нибудь заметных усилий.
Число Грэма строится на основе тетрации тройки. Нетрудно убедиться, что последовательность a(n) = 3↑n сходится в 10-адических числах к некоторому предельному числу 𝑥, которое решает уравнение: 3^x = x. Это число можно найти итерационным методом и выяснить произвольное количество младших разрядов числа Грэма. Вот найденный мной последние 100 знаков этого монстра:
В доказательстве Великой теоремы Ферма, представленном Эндрю Уайлзом тоже используются 𝑝-адические числа.
Они вовсе не годятся для повседневных рассчетов (у них совершенное ужасная топология, не позволяющая говорить о числовой прямой или о каких-либо иных геометрических представлениях), но в арсенале математика и физика профессионала, p-адические числа занимают место особо мощного, но очень специального инструмента.