scorcher_7 (scorcher_7) wrote,
scorcher_7
scorcher_7

Занимательная Гугология, часть 1. Как записывать большие числа?

Есть такая наука гугология называется. Многие называют ее вымышленной, несерьезной и бесполезной. По сути это такой особый подраздел математики, в котором изучаются и создаются большие, сверхбольшие, гипербольшие и даже бесконечные числа. То, что наука "вымышленная" - тут не поспоришь, поскольку даже название свое берет от "вымышленного" числа - гугол (googol). Это наименование придумал девятилетний племянник американского математика Эдварда Казнера, исключительно ради забавы, чтобы обозначить число с сотней нулей после единицы. Однако то, что это число "вымышленное" отнюдь не значит, что оно не настоящее, современная наука вполне способна оперировать этим числом для описания реальных физических величин. А ныне крупнейшая IT-компания даже была названа в честь этого числа (правда из-за патентной политики предварительно исказив написание - google).

Если вы хоть раз задавались вопросом, какое число самое большое или есть ли что-нибудь больше бесконечности, значит где-то в душе вы тоже больны этой наукой. Сегодня, не имея математической подкованности, так просто понять все что в ней происходит наврятли получится. К тому же популярной литературы на эту тему на русском языке практически не существует. Поэтому я и решил создать цикл статей, в котором попробую максимально доступно объяснить, что же такое гугология.

Дисклеймер: Предупреждаю сразу, это не легкое чтиво. И несмотря на то, что я попытался, как можно проще рассказать обо всем этом, все равно для осмысления придется не хило напрячь мозги. Тем не менее школьного курса математики вам будет более чем достаточно. Так же хочу отметить, что с каждой частью цикла сложность будет нарастать, и для понимания последующих частей необходимо хотя бы частичное понимание предыдущих.

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

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

Возьмем к примеру привычную нам десятичную нотацию. Ведь человечество очень долго шло к такой записи чисел. Первые нотации это были либо зарубки на деревьях, либо штрихи на глине. Затем люди придумали цифры - это символы, которые кодируют в себе число. Например, всем знакомые, римские цифры кодируют следующие числа I - 1, V - 5, X - 10, L - 50, C - 100, D - 500 и M - 1000. Составляем их в ряд и получаем краткую запись числа. Но такая нотация это весьма примитивная функция. По сути, это просто сложение (ну и еще вычитание для IV, IX и.т.д.). А вот арабские цифры это нотация, которая содержит в себе намного более сложную функцию. Порядок, в котором мы подставляем эти цифры в арабское число, играет важную роль. Вот так выглядит функция десятичной нотации:

цифра ⋅ 10n-1 + цифра ⋅ 10n-2 + ... + цифра ⋅ 100, где n - количество цифр в числе

Однако с самого детства, как только мы научились считать, эта формула настолько прочно поселилась в нашем мозгу, что нам сейчас кажется, что мы всегда понимали десятичную нотацию. Но это не так. Многие малые дети, которые обучаются счету (возможно и вы были в их числе), доходя до числа 11 пытаются придумать ему либо особое название, либо особую запись, потому что понятие числовых разрядов для ребенка очень сложно и не сразу поддается осознанию.

Сейчас же мы настолько привыкли к десятичной нотации, что нам кажется, что мы понимаем масштабы всех чисел, которые могут быть в ней записаны. Ну если масштаб числа 1000 еще можно представить, вот так бы оно выглядело в неформализованном виде у древнего человека, который делал зарубки на дереве:

IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

Хотя, надо признаться, что от такого количества зарубок дереву мог быть нанесен непоправимый ущерб. Но вот наглядный масштаб числа 1000000 человеку уже почти непостижим. Это надо представить, что каждый штрих из тех что выше, превратился во всю эту совокупность штрихов. А значит, зачастую, когда мы говорим "миллион", то у нас происходит подмена понятий и мы представляем не число, а его десятичную нотацию.

Первое большое число, которому уже тесно в десятичной нотации, и о котором я уже говорил во вступлении, это Гугол. Для его записи обычно используют логарифмическую нотацию (запись числа с использованием степеней). Гугол = 10100, число с сотней нулей после единицы. Если же записать его в строчку десятичной записью, оно будет выглядеть вот так:

100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Это столь большое число, что мы не насчитаем никаких физических объектов соизмеримых с ним. Даже число элементарных частиц в наблюдаемой вселенной = 1088 (число с 88ми нулями после единицы)

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

Более того вы можете даже держать в руках, то что создаст для вас число бо́льшее чем гугол. Вам нужны всего лишь две колоды карт (всего 104 листа). Тщательно перемешайте их в одну колоду. А теперь спросите себя: сколько возможных вариантов последовательности карт может быть в такой колоде после того как вы ее перемешали. Ответ: 10165.

А вот еще... Число Объемов Планка в наблюдаемой вселенной = 10185. Напомню, что Объем Планка это самый минимально возможный объем в физике, на который можно разделить пространство.

Но мы всё топчемся на месте. Давайте возьмем число, которое еще на порядок больше. Представляю вам гуголплекс = 1010100. Это число (за авторством того же девятилетнего мальчика) имеет гугол нулей после единицы. И как вы понимаете я не смогу записать его в строку, более того, даже если бы я мог нарисовать ноль на каждой элементарной частице в пределах наблюдаемой вселенной, мне бы просто не хватило частиц, чтобы это сделать. То есть, это число вообще невозможно отобразить в десятичной нотации.

Давайте посмотрим можно ли что-то сопоставит с этим числом. Ну давайте представим, что вся вселенная бесконечна, а так как квантовая механика позволяет организовать материю конечным числом способов, то по статистике где-то далеко-далеко-далеко должна быть полная копия нашей планеты. Ученые посчитали это расстояние. Оно приблизительно равно 101028 км. До гуголплекса "немного" не дотянули.

Тогда так... После тепловой смерти вселенной все же будут происходить квантовые скачки, это такие события квантовой природы, которые способны спонтанно создавать какие-либо структуры. Такое событие надо сказать очень редкое, вряд ли стоить ожидать крупного квантового скачка до наступления тепловой смерти, а вот после у них будет предостаточно времени чтобы проявить себя. Вопрос стоит таким образом, сколько должно пройти времени, чтобы квантовый скачок спонтанно создал человека, вроде меня или вас. Ученые посчитали и это. Такое может произойти через 101050 лет. И опять не хватило до гуголплекса.

Может быть нас спасет комбинаторика? Колоду из скольких карт нужно взять и перемешать, чтобы мы потенциально могли получить больше гуголплекса вариантов последовательности карт внутри нее? Такая колода должна содержать гугол карт, да и то число возможных последовательностей будет:
1010100 < x < 1010101

Думаю на этом моменте, у вас не возникнет соблазна сказать, что числа записанные в более сильных нотациях (например, 1010100 - гуголплекс) "ненастоящие". Они такие же формализации как и десятичные числа.

Итак, что же мы выяснили. Бывают разные нотации для записи чисел и они отличаются по своей силе. Ну а сила нотации заключается в ее способности кратко записывать большие числа. Римская нотация сильнее, чем "зарубковая" нотация, а десятичная нотация еще сильнее, чем римская.  Следующая на очереди логарифмическая нотация для записи чисел типа гулог (10100) и гуголплекс (1010100). Но уже по гуголплексу видно, что ему тесно в логарифмической нотации.

Можно конечно и дальше городить башни из степеней, но и если степени будет недостаточно, то можно использовать высшие арифметические действия. Но для начала я должен объяснить, что же это такое, потому что в школе их обычно не проходят. Хотя я уверен, что многие задавались вопросом: вот есть у нас сложение, за ним умножение, потом степень, а дальше? Есть ли другие более сильные арифметические действия? Есть, но их проблема в том, что они не нужны, то есть совсем... Вот например, возьмем, тетратцию, это когда число возводится в степень равную ему несколько раз, к примеру так 2^2^2^2^2^2 = 2^^6. Это действие нигде не используется на практике. Вы не увидите его не в одной формуле, ни в физике, ни в геометрии, ни в алгебре, ну почти нигде.

Но наше любопытство неутомимо. А есть ли что-нибудь за тетрацией? Конечно есть. Новые арифметические действия можно вводить сколько угодно. А чтобы не запутаться, давайте их как-нибудь нумеровать. Сложение - 1, умножение - 2, степень - 3, тетрация - 4. Уровень арифметического действия называют гипероператором. А если более полно, то это обобщенная формализация арифметических действий.

4

Вот так принято записывать числа в тетрационной нотации: 10^^4 или 10[4]4 - это равно 10101010 и больше чем гуголплекс.  Что дальше, пентационная нотация? Мелко мыслите. Раз мы уже знаем, что гиперопертор обобщает все высшие арифметические действия, поэтому мы можем создать на порядок более сильную нотацию - гипероператорную  - a[n]b, где n - уровень арифметического действия.

Для наглядности запишем числа гугол и гуголплекс, используя гипероператор.
Гугол = 10[3]100
Гуголплекс = 10[3]10[3]100

Мало того что гипероператоры бо́льшие, чем 3 (степень), не имеют никаких практических применений, они еще создают очень большие числа. Уже начиная с 4-ого гипероператора (тетерации), если применить его на малых числах, мы получим сверхбольшие числа. Так, например 4[4]3 ≈ 10154

13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096

Что больше гугла. Хотя это всего лишь 444 (по правилам степенная башня считается с конца).

Гипероператор уровнем 5 (пентация) вообще уже тяжело представить. Например, число 3[5]3 будет выглядеть как башня из степеней:

5

Это число будет намного больше чем гуголплекс. В доступной наблюдению и осмыслению физической реальности не найдется столько свойств или параметров, естественно не говоря уже об объектах, которые были бы хоть немного соизмеримы с этим числом. Тем не менее мы с легкостью формализировали его в виде простой записи: 3[5]3. В этом и есть сила человеческого разума, воображать то, что будет бо́льшим, чем сама вселенная вокруг него.

Немного передохните и идем дальше. Число 3[6]3 вообще нельзя представить в виде логарифмической записи. Это настолько много, что даже не пытайтесь это представить.

Понятно, что гипероператор можно увеличивать и дальше, образуя все более и более непостижимые числа. Но опять же, по сути, мы топчемся на месте. Следующий шаг требует нехило напрячь воображение. Для него нам понадобится самое большое число, которое когда-либо использовалось в математике для доказательств - Число Грэма.

Но перед тем как постигать масштаб Числа Грэма, я попробую в двух словах объяснить смысл этого числа. Число Грэма - это частное доказательство Теоремы Рамсея, которая опять же происходит из области комбинаторики. Суть теоремы можно объяснить следующим образом. У нас есть куб, все вершины которого соединены прямыми линиями: вертикальными, горизонтальными, диагональными. Мы вольны раскрасить все эти линии в любой из двух цветов: красный или синий. Наша задача состоит в том, чтобы сделать это так, чтобы отрезки находящиеся в одной плоскости были разного цвета. Иными слова чтобы не возникла такая фигура:

Для обычного куба эту задачу очень просто решить, причем разным числом способов. Мы можем раскрасить линии внутри нашего куба хотя бы так:

Но что если наш куб будет иметь не три, а четыре измерения. Да, представить такой куб невозможно, но в математике такие объекты существуют. Можно ли тогда решить эту задачу? Ответ: можно. И если будет пять измерений, то задача тоже решается. Однако Теорема Рамсея утверждает, что рано ли поздно, увеличивая число измерений куба, мы уже не сможем решить эту задачу, и как бы мы не раскрашивали линии куба, у нас все равно где-нибудь да получится плоскость раскрашенная в один цвет. Вопрос стоит так: сколько измерений должно быть у куба, чтобы правило раскраски обязательно бы нарушались. Ответ: число измерений должно быть равно Числу Грэма.

Теперь давайте вернемся к масштабу Числа Грэма. Итак, для его построения нам нужно сам гипероператор, то есть уровень арифметического действия увеличить до размера 3[6]3. Здесь, внимание: то есть, это будет ни тертарция, ни пентация, а 3[6]3-ация.

Тогда мы должны записать новое полученное число вот так 3[3[6]3]3. А если и это число мы используем как гиперопертор, тогда получим 3[3[3[6]3]3]3. Короче так вкладывать гипероператоры можно бесконечно и уровень невообразимости числа будет невообразимо возрастать.

Итак, представляю вам число Грэма =
3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [3 [ 6 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3 ]3

Всего 64 вложения гипероператоров. Вот такая рекурсия.

Поскольку это слово будет постоянно использоваться дальше, напомню для всех баянистый ответ на вопрос, что оно означает:

Это и есть самое большое число, когда-либо использованное в математическом доказательстве. Но это не самое большое из придуманных чисел. И нас с вами тоже ничто не останавливает перед созданием еще бо́льшего числа. Да, у него не будет применений даже в математике. Но ведь сам факт того, что мы это можем, еще раз доказывает силу формального мышления человека.

Предлагаю исключить такие банальности как Число Грэма умноженное на Число Грэма, или Число Грэма в степени Числа Грэма, или даже Число Грэма с гипероператором Числа Грэма. И так видно, что Число Грэма чувствует себя в гипероператорной нотации еще более скованно, чем Гугол в десятичной нотации. Поэтому, чтобы совершить новый скачек нам нужны другие более сильные нотации.

Можно ли придумать такие нотации? Конечно можно, и их напридумано великое множество. Но они очень сильные, и вот так сразу без подготовки посвящать вас в них мне бы не хотелось, потому что большинство из них слишком абстрактные и их практически невозможно показать наглядно. Поэтому я предлагаю две свои нотации для записи чисел, которым тесно в гипероператорной записи.

Я думаю не только одному мне пришло в голову, что можно не рисовать все эти вложения гипероператоров в числе Грэма, а как-то их записать. Что ж давайте придумаем функцию, которая будет принимать эти вложения как число. Назовем ее супергипероператор. Вот так она работает:

Тогда число Грэма в этой нотации будет выглядеть так: superhyper(3, 3, 6, 64).

Но на самом деле я предлагаю пойти еще дальше:

И еще дальше. Чтобы было вот так superhyper(a, b, n, m, l, k, j, i) =

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

Получается, что обязательным числом, которое подставляется в функцию, является только первое, все остальные по умолчанию равны "1". То есть, например:
superhyper (5) = superhyper (5, 1, 1) = 5 + 1 = 6
superhyper (2, 2) = superhyper (2, 2, 1) = 2 + 2 = 4
superhyper (10, 10, 2) = superhyper (10, 10, 2, 1) = 10 ⋅ 10 = 100
superhyper (10, 100, 3) = superhyper (10, 100, 3, 1) = 10100 = googol


Но и эту функцию можно обобщить, придумав еще более мощную функцию, назовем ее квазиоператор, и вот что она из себя представляет:

quasi (a, 0) = superhyper (a)
= a+1

quasi (a, 1) = superhyper (a,a)
= a+a

quasi (a, 2) = superhyper (a,a,a)
= a[a]a

quasi (a, 3) = superhyper (a,a,a,a)
= ...[a[a[a]a]a]... } a-вложений

quasi (a, 4) = superhyper (a,a,a,a,a)
= ...[a[a[a]a]a]... } ...[a[a[a]a]a]... } ••• (a-вложений) ••• ...[a[a[a]a]a]... } a-вложений

и т.д.


Давайте разберем как работает наш квазиоператор на примере числа "3":

quasi (3, 0) = 3 + 1 = 4

quasi (3, 1) = 3 + 3 = 6

quasi (3, 2) = 33 = 27

quasi (3, 3) = очень много, но меньше числа Грэма

quasi (3, 4) = очень много, намного больше числа Грэма,
уже не выразить в обычной гипероператорной нотации


quasi (3, 5) = очень много, несравненно больше числа Грэма

Продолжать нет смысла, и так понятно, что уровень рекурсии очень мощный. Но на самом деле эти мои нотации достаточно слабы. Справедливости ради приведу здесь, как соотносятся наши функции superhyper() и quasi() с общепринятыми нотациями для записи чисел.

Стрелочная нотация Кнута:
a↑n = a[3]b
a↑↑n = a[4]b
a↑↑↑n = a[5]b
a↑...↑b -  = superhyper(a, b, n+2) = a[n+2]b
где "↑...↑" содержит n стрелок

Цепная нотация Конвея:
a → b → n → 1 = superhyper(a, b, n+2) = a[n+2]b
a → b → n → 2 = superhyper(a, b, 3, n)
a → b → n → 3 = superhyper(a, b, 3, n, ..., n, ab)
где количество "n, ..., n" равно n-1
quasi(n, n) < n → n → n → 4

Линейная массивная нотация Бауэрса-Берда:
{a, b, n, 1} = superhyper(a, b, n+2) = a[n+2]b
{a, b, n, 2} = superhyper(a, a, a+2, b-1, n)
quasi(n, n) < {n, n, n, 3}

А на рисунке ниже приведены все ныне разработанные нотации для записи больших чисел, включая и мои superhyper() и quasi(). Все нотации расположены в порядке возрастания их силы. К этой иерархии нотаций мы еще вернемся в пятой части цикла, когда будем выяснять какое число самое большое из придуманных, пока просто ознакомьтесь.
На этом я приглашаю вас во вторую часть цикла, где мы разберем что такое бесконечность, и есть ли что-либо бо́льшее чем она. Конечно, вы можете сказать: погоди, а как же самое большое из придуманных чисел. Оно явно меньше бесконечности, почему бы в начале не поговорить о нем. Однако поверьте, чтобы понять масштаб самого большого из придуманных чисел нужно вначале понять, что такое бесконечность, и есть ли что-нибудь за ее пределами.
Tags: авторский материал, бесконечность, большие числа, математика, наука
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 3 comments