Серия «Айсберг больших чисел»

124

Айсберг больших чисел. Часть 4. Бездна

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

Для понимания вам нужно обладать воображением и немного абстрактным мышлением, ну и знать математику на уровне 7-8 класса школы. Еще желательно знание основ программирования на любом языке.

Как всегда, пару источников по сегодняшней теме.

Сегодня будут пару теорем с пруфами, которые я буду отдельно помечать. Кто никогда не разбирался в математических доказательствах — можете их пропускать. Тем не менее, настоятельно рекомендую все же их просматривать, чтобы не было вопросов "а почему?" и "в смысле?".

Готовы? Поехали.

Начнем с парадокса интересного числа, который формулируется так:

Теорема: Докажем, что все числа интересны.
Доказательство: Пусть существуют неинтересные числа. Возьмем самое маленькое неинтересное число. Такое число — единственное в своем роде. Но разве это не делает его интересным?
Отсюда противоречие, значит, неинтересных чисел не существует.

Парадокс этот скорее шутливый, но у него есть и более серьезный аналог (парадокс Берри):

Теорема: Все натуральные числа можно описать, используя менее 10 слов.

Доказательство: Пусть существуют числа, которые нельзя никак описать менее, чем за десять словам. Выберем из всех этих чисел минимальное. Теперь опишем его, как "Наименьшее число, которое нельзя описать, используя менее 10 слов". В этом описании содержится 9 слов. Отсюда противоречие, а значит все числа можно описать менее, чем за 10 слов.

В чем же подвох?

Айсберг больших чисел. Часть 4. Бездна Научпоп, Математика, Философия, Длиннопост

(Сможет ли Уроборос сожрать себя целиком?)

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

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

Мы используем этот тип парадоксов, чтобы доказать существование невычислимых функций, то есть таких, для которых не существует хоть какого-то общего способа или алгоритма, их вычисляющего.
Вообще вычислить можно почти что угодно. Все те монстры от мира функций, о которых мы говорили в предыдущей статье (быстрорастущая иерархия) вычислимы, ведь их можно посчитать на каком-то вычислительном устройстве. Конечно, на обычном компьютере или тем более в уме сделать это невозможно. Важна лишь потенциальная возможность, лишь бы в вашем компьютере была неограниченная память и в вашем распоряжении имелось неограниченное время. (Заметьте, не бесконечность в прямом смысле, здесь и сейчас, а именно неограниченность!)

Чтобы наконец рассмотреть понятие вычислимости, надо как-то его формально определить. Для этого Алан Тьюринг придумал абстрактную машину, названную потом его именем — машину Тьюринга.

Айсберг больших чисел. Часть 4. Бездна Научпоп, Математика, Философия, Длиннопост

(картинка из интернета для наглядности)

Машина Тьюринга состоит из трех элементов — неограниченной в обе стороны ленты, разделенной на ячейки, считывающего устройства (головки), и набора правил, по которым машина, собственно, и работает.
В ячейках ленты изначально находятся какие-то символы (входные данные), а головка может находиться в одном из нескольких состояний. Правила описывают, что делать машине в случае, если головка находится в таком-то состоянии и находится напротив ячейки с таким-то символом. А может эта машина за один раз:

  1. Записать в ячейку напротив головки некий символ (другой или такой же)

  2. Сдвинуть головку на одну ячейку вправо или влево

  3. Поменять состояние головки (на какое-то другое или оставить его тем же)

  4. Остановить машину.

Вот пример правил для машины с двумя состояниями головки и двумя возможными символами в ячейке ленты:

  1. Если головка находится в состоянии А, а в ячейке записан символ "0", записать в неё "1", сместить головку вправо и поменять её состояние на B.

  2. Если головка находится в состоянии А, а в ячейке записан символ "1", сместить головку влево и оставить состояние А.

  3. Если головка находится в состоянии B, а в ячейке записан символ "0", сместить головку влево и оставить состояние B.

  4. Если головка находится в состоянии B, а в ячейке записан символ "1", записать в неё "0", сместить головку вправо и остановить машину.

Поиграться можно, например, здесь.

Сейчас мы не будем углубляться в эту тему, скажу лишь, что что на машине Тьюринга можно эмулировать любой алгоритм, который можно написать и на обычном языке программирования. Берите любой: Python, Java, C++ — эта грубая и уродливая машина Тьюринга справится с чем угодно. И вообще, в дальнейшем мы будем использовать термин "программа", а не "машина Тьюринга". (Но не забывайтесь, машины Тьюринга нам еще понадобятся).

Но есть одна задача, для которой силы машины Тьюринга не хватает — так называемая "проблема остановки". Решить проблему остановки — означает написать программу, которая узнает, остановится ли когда-нибудь данная конкретная программа или нет. (Чувствуете запах самореференции?)

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

Но всё не так просто и вот пример. Возьмите какую-нибудь нерешенную до сих пор гипотезу для натуральных чисел, например, проблему Гольдбаха. (Её математики уже почти 300 лет решают!). Запустите программу, которая для каждого натурального числа проверяет, выполняется ли условие задачи. Если для очередного числа условие не выполняется, остановите программу. Математики за 300 лет не узнали, есть ли такое число, и у вас вряд ли выйдет.

На самом деле не существует такого алгоритма S, которому на вход подавалась бы запись любого другого алгоритма A, а на выходе он бы отвечал, останавливается ли A или нет.

Доказательство:

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

Напишем программу D, которая принимает на вход запись любой программы A и входных данных к A, выполняет внутри себя программу S, и, если S печатает "Программа останавливается", то D не останавливается (зацикливается), а если S печатает "Программа не останавливается", то D останавливается.

Айсберг больших чисел. Часть 4. Бездна Научпоп, Математика, Философия, Длиннопост

Подадим теперь на вход программы S запись программы D и любого входа к ней A. Если D останавливается, то S должна вывести, что D не останавливается, но если D не останавливается, то S должна вывести, что D останавливается, но если D останавливается, то S долж...

Мы получили парадокс, а значит, какое-то из наших предположений неверно. Если программа S существует, то программу D сделать очень просто. Значит, ошибочное предположение было в том, что существует программа S, которая решает проблему остановки.

Следовательно, проблема остановки неразрешима.

А причем здесь большие числа?

Айсберг больших чисел. Часть 4. Бездна Научпоп, Математика, Философия, Длиннопост

(ща все будет, не боись)

Возьмем все машины Тьюринга с произвольными правилами, числом состояний головки N и числом возможных символов M. Запустим их все на ленте, заполненной каким-то одним символом, и "посмотрим", какие из этих машин останавливаются, а какие нет. Из тех, что останавливаются, возьмем ту, которая останавливается за наибольшее число шагов. Обзовем эту машину Busy Beaver (рус. занятой бобр). (Аналогию с занятыми бобрами я считаю еще более запутывающей, поэтому объяснять ее не буду). Определим функцию BB(N, M), которая возвращает, собственно, число шагов до остановки машины Busy Beaver при числе состояний N и числе символов M. Эта функция, очевидно, невычислима, так как, чтобы ее вычислить, нужно решить проблему остановки. Более того, эта функция растет быстрее любой вычислимой функции!

Доказательство:

Пусть существует вычислимая функция f(N, M), которая растет так же или быстрее, чем BB(N, M). Но функцию f(N, M) можно записать в виде программы, а значит, и в виде машины Тьюринга для числа N_0 состояний и M_0 символов.

Возьмем теперь машину Тьюринга с N_1 > N_0 состояниями и M_1 > M_0 символами. Если эта машина не остановилась за f(N_1, M_1) шагов, то она уже не остановится, ведь мы предположили, что f(N_1, M_1) — это оценка сверху числа BB(N_1, M_1).

Но это значит, что, вычислив функцию f(N_1, M_1), мы, по сути, решим проблему остановки для любой машины Тьюринга с N_1 состояниями и M_1 символами. Следовательно, функция f(N, M) невычислима, и BB(N, M) растет быстрее любой вычислимой функции.

Вообще, что собственно этот ваш BB означает? Если говорить популярно и упрощенно, то BB(N, M) означает самое большое число, которое можно рассчитать с помощью программы, код которой "весит" не больше определенного количества байт. Помните парадокс Берри, с которого мы начинали — это тоже самое, только мы избавились от парадокса.

Как ни странно, BB(N, M) можно вычислить для небольших чисел, когда действительно можно понять, зацикливается программа или нет.

Часто используют другую функцию S(N) = BB(N, 2) — то есть используют машины Тьюринга с двумя символами на ленте, скажем "0" и "1". По состоянию на 2022 год известно, что

  1. S(1) = 1

  2. S(2) = 6

  3. S(3) = 21

  4. S(4) = 107. Что-то пока ничего необычного...

  5. S(5) больше или равно 47 176 870. Некоторые машины с пятью состояниями демонстрируют слишком сложное поведение для человеческого понимания, поэтому оценка неточная.

  6. S(6) больше или равно вот этому монстру:

Айсберг больших чисел. Часть 4. Бездна Научпоп, Математика, Философия, Длиннопост

, что больше, чем 10↑↑15 (вспомните нотацию Кнута).

Про S(7) нам неизвестно ничего, кроме того, что оно больше S(6).

Умельцы сконструировали машину Тьюринга с 19 состояниями и 2 символами, которая останавливается больше, чем за число Грэма шагов. Скорее всего, S(19) гораздо больше числа Грэма.

Другие мастера доказали, что S(748) невозможно вычислить в системе аксиом Цермело-Френкеля. Скорее всего, настоящая граница гораздо меньше 748.

Вообще (это уже мое предположение), числами S(N) можно измерять "силу" математических теорий: чем "сильнее" теория, тем для большего N можно вычислить S(N). Чтобы вычислить любое S(N), нужна, как мне кажется, бесконечно сложная теория бесконечной силы.

Число Райо из той же оперы, только использует не "язык" машин Тьюринга, а язык теории множеств, и определяется, как "наибольшее число, представимое на языке теории множеств с использованием гугола символов или меньше, плюс 1".

Математики, естественно, не стали останавливаться на этом.

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

Для машин, использующих оракулы, мы можем определить своих Busy Beavers и свои функции BB_k(N, M), где k — порядок оракула. Каждая следующая функция BB_k(N, M) растет быстрее любой "сверхвычислимой" функции предыдущих порядков.

С помощью похожих конструкций математик Джонатан Бауэрс наконец определил самое большое именованное конечное число в гугологии — Utter Oblivion (рус. Высшее Забвение). Ничего конкретного оно не означает, просто Бауэрс хотел, чтобы его число было самым большим.

Существует ли оракул на самом деле — проблема скорее философская. Есть несколько вариантов для существования оракула в нашем физическом мире, и, как по мне, вряд ли хоть какой-то из них возможен:

  1. "Машина Зенона" — может выполнить бесконечное количество шагов за конечное время.

  2. "Действительный компьютер" — может вычислить иррациональное число с бесконечной точностью.

  3. Квантовый "сверхкомпьютер" с бесконечномерными кубитами (если я правильно понял).

Есть и другие умозрительные конструкции, про них лучше почитайте на Википедии.

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

Показать полностью 5
132

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение)

В первой части этого поста мы начали говорить о быстрорастущей иерархии функций и дошли до функции

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

Эта функция растет настолько быстро, что даже сама математика в каком-то смысле не может осознать эту скорость. Поясню.

Каждая математическая теория начинается с системы аксиом — очевидных истин, которые принимаются "на веру". Вот пример такой системы аксиом в арифметике натуральных чисел — аксиомы Пеано.

Аксиома 1. Существует число, назовем его "1".

Аксиома 2. К любому числу можно прибавить 1 и получить другое число.

Аксиома 3. Нет такого числа, к которому можно прибавить 1 и получить 1. (То есть в этой системе аксиом единица — это первое по порядку число, нуля нет)

Аксиома 4. Если a + 1 = b + 1, то a = b.

Аксиома 5. Если какая-то формула F верна для единицы, а также верно утверждение: "Если формула F верна для n, то она верна и для n+1", то эта формула верна для всех чисел. (Это аксиома математической индукции (погуглите), и если вы не поняли, что здесь написано, не парьтесь.)

Из этих аксиом можно вывести почти все вам известные факты о натуральных числах. Например:

  1. От перемены мест слагаемых сумма не меняется;

  2. От перемены мест множителей произведение не меняется;

  3. Простых чисел бесконечно много;

  4. Между n и 2n обязательно есть простое число;

И множество других теорем, более сложных в доказательстве.

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

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

Один из таким фактов — Теорема Гудстейна. (Разбор теоремы на Youtube, 4.5 часа)

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

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

Это всегда можно сделать, на этом вообще основана двоичная система счисления. (Вспомните школьный курс информатики).

В числе 2^3 в показателе осталась тройка, и мы можем разложить её также.

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

Мы получили запись числа 9 в так называемой "наследственной нотации" (англ. "Hereditary base-n notation" по основанию 2.

Теперь механически меняем все двойки в этой записи на тройки и отнимаем в конце единицу.

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

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

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

Меняем теперь в этом числе все тройки на четверки и отнимаем в конце единицу. Получившееся число переписываем в наследственной нотации по основанию 4, меняем все 4 на 5 и отнимаем единицу, и так далее, и так далее.

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

Теорема Гудстейна утверждает, что в конце этой последовательности получится ноль. Кажется абсолютно контринтуитивным, но это так. Последовательность поначалу стремительно растет, но в какой-то момент очередной член последовательности приходит к виду

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

в наследственной нотации по основанию B, после чего начинает уменьшаться.

Так вот, длина этой последовательности для числа n растет примерно как

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

что "слишком быстро" для системы аксиом Пеано.

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

Конечно, математики не ограничиваются системой аксиом Пеано. В системе аксиом Цермело-Френкеля (сейчас неважно, что это за система) теорему Гудстейна доказать можно.

Но ведь быстрорастущая иерархия не заканчивается! Вот примеры, которые я объяснять уже не буду:

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

И так далее, и тому подобное. Где-то в этом списке есть и еще одно известное число TREE(3), его масштаб строго не доказан, но оценивается, как

Айсберг больших чисел. Часть 3.2. Дно айсберга (продолжение) Научпоп, Математика, Длиннопост

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

Тем не менее, у математиков нашелся способ строить еще большие числа, но о нём в следующей статье.

Показать полностью 11
103

Айсберг больших чисел. Часть 3.1. Дно айсберга

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

Пару дисклеймеров:

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

  2. Этот пост — самый сложный для понимания из серии (хоть впереди еще два). Воображение вам уже не понадобится, зато нужна будет немалая доля абстрактного мышления и математическая интуиция. 7-8 класса школьной математикии всё ещё достаточно. Ну и да, формул будет много.

  3. Значок "^" будет означать степень, звездочка "*" — умножение, а нижнее подчеркивание "_" — нижний индекс.

Вот вам еще пару ссылок по теме от людей, которые что-то в ней смыслят. (На английском).

Прежде чем перейти непосредственно к быстрорастущей иерархии, нам нужно понять, как сравнивать функции между собой.

По (нестрогому) определению, функция g(x) растет быстрее функции f(x), если значения функции g(x) становятся больше значений f(x) начиная с некоторого числа x0. Вот пример:

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

На этом графике функция y = x^3 растет быстрее, чем y = x, так как можно выбрать такое x0 (на рисунке оно обозначено), что, начиная с него, значения функции y = x^3 будут всегда больше, чем y = x. Хотя только по графику сказать такого нельзя — вдруг при некотором большом x1 функция y = x обгонит y = x^3? В нашем случае довольно очевидно, что это не так (мы сравниваем число с его кубом).

Теперь к теме.

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

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Итак, определим первую функцию в нашей серии как

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Эта функция просто прибавляет единицу к числу. Теперь каждую последующую функцию определим, как

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

То есть мы применяем предыдущую функцию к числу n подряд n раз. Это и есть рекурсия. Например,

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Чтобы получить f_1(3), мы применили функцию f_0(n) к числу 3 подряд три раза. Получилось 6. Более того, верна формула

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Эта функция уже растет быстрее f_0(n). Попробуем теперь тем же рекурсивным способом вычислить f_2(3).

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Применив f_1(x) три раза подряд к числу 3, мы, по сути, удвоили его три раза подряд. Формула здесь такая:

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Остановимся и сделаем промежуточные выводы.

Можно заметить, что в f_0(x) мы используем только сложение, в f_1(x) уже появляется умножение, а в f_2(x) — возведение в степень. Вообще говоря, все эти функции являются этаким аналогом гипероператоров (про них мы говорили в предыдущем посте). Напомню: каждый следующий гипероператор растет намного быстрее предыдущего, и уже масштабы тетрации — следующего гипероператора после возведения в степень, — выходят за рамки всего существующего в нашей вселенной.

Примерно оценить масштаб функций f_n(x) можно с помощью нотации Кнута — о ней мы тоже уже говорили:

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Здесь знак тильды ("~") означает примерный масштаб. При k = 3 f_k(n) растет уже как тетрация, при k = 4 как пентация, и.т.д.

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

Для этого построим вот такую табличку и выделим в ней элементы, стоящие на диагонали:

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

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

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

будет расти быстрее n-ой функции из списка, начиная с числа n+1.

Вот эта греческая буква означает, грубо говоря, "бесконечность", выражая тот факт, что функция f_ω растет быстрее любой функции f_n, где n — любое "конечное" число.

Следующая функция f_[ω+1](n) определяется, как n раз повторенная функция f_ω.

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Эта функция уже растет примерно как последовательность g(n) из предудущего поста. Более того,

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

, где G — число Грэма, то самое.

Например

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

, где

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

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

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

картинка из второй части

Следующая функция в быстрорастущей иерархии определяется аналогично — повторением предыдущей:

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Помните, что число Грэма - это g(64)? Что если взять не g(64), а g( g( 64))? А

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

? Ничего особенного, мы получим примерный масштаб чисел, которая выдает функция f_[ω+2].

Думаю, вы догадались, что будет дальше. Вот с этим чудовищем можно сравнить f_[ω+3](64):

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

И так далее, и тому подобное. Но и это еще не конец. Такую же диагонализацию можно применить снова:

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

И новая "диагональная" функция снова растет быстрее всех предыдущих. Обозначается она, как

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Аналогично определяются функции f_[ω2 + 1], f_[ω2 + 2], f_[ω2 + 3], и.т.д, к которым тоже можно применить диагонализацию и получить

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Точно так же определяются функции f_ω4, f_ω5, f_ω6, к которым тоже можно применить диагонализацию!

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Забудьте про число Грэма. Его мы оставили дааалеко позади.

Чтобы перейти к f_[ω^3], нужно пройти через все предыдщие этапы (знак f опускаю): ω^2 + 1, ω^2 + 2, ω^2 + 3 ... диагонализовать в ω^2 + ω; потом ω^2+ω, ω^2 + ω2, ω^2 + ω3, ^2 + ω4 диагонализовать в ω^2 + ω^2 = (ω^2)*2; и наконец (ω^2)*2, (ω^2)*3, (ω^2)*4 диагонализовать в ω^3. Дальнейшие выкладки по получению ω^4, ω^5 и.т.д. опустим и сразу перейдем к их диагонализации.

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

Точно также строится последовательность ω^ω, ω^ω^ω, ω^ω^ω^ω и.т.д., которая диагонализуется в

Айсберг больших чисел. Часть 3.1. Дно айсберга Научпоп, Математика, Длиннопост

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

Показать полностью 25
235

Айсберг больших чисел. Часть 2. Подводное течение

Не думал, что напишу вторую часть на следующий же день. Но таки вот, держите)
В прошлом посте мы рассмотрели те числа, которым можно найти хоть какое-то применение на практике. То, что будет дальше, вам в жизни не пригодится и скорее определяется как своеобразная форма искусства. Это искусство может поразить не меньше «Моны Лизы» или «Черного квадрата», и вызвать эмоций больше, чем музыка Pink Floyd.
По теме дам еще пару ссылок. Для разнообразия.

Сегодня мы поговорим о гипероператорах и попробуем понять определение (не само число!) числа Грэма. Чтобы начать погружаться в эти пучины безумия, нам нужно систематизировать кое-какие школьные знания.

Как и в прошлый раз, вам понадобится знание математики на уровне 7-8 класса, воображение и немного абстрактного мышления.

Начнем с самой простой операции — операции сложения двух чисел, или, на языке гугологии — гипероператора первого порядка. Чтобы понять, что будет дальше, нам нужно определить сложение, как итерированное (повторённое) прибавление к числу единички, например:

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

Здесь число под фигурной скобкой означает количество повторений. Вроде бы понятно.

Соответсвенно, каждый следующий гипероператор определяется как итерированное применение предыдущего. Вот пример для умножения — ведь это повторенное несколько раз сложение!

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

Стоит заметить, что умножение, как гипероператор 2 порядка, уже действует намного эффективнее. Сравните, например, числа 10 + 20 и 10*20 — разница уже почти на порядок.

Следующий гипероператор — возведение в степень, определяется (как бы вы думали?), через повторенное умножение!

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

И здесь мы уже улетаем в стратосферу. Вспомните, что числа из первого поста мы определяли именно через степени, а они уже не вмещались в нашу Вселенную!

Но что насчет следующего гипероператора? В школе о нем не говорят, да и в универе вроде не проходят. Дело в том, что тетрация растет настолько быстро, что почти ни в одной из задач, не созданных специально, её нельзя применить!

Записывать тетрацию, как «башню степеней», несколько неудобно, поэтому стоит познакомиться с альтернативной формой записи гипероператоров — стрелочной нотацией Кнута. Возведение в степень в этой форме записывается вот так:

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

А тетрация — вот так:

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

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

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

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

Чтобы понять масштаб чисел, попробуем что-нибудь посчитать:

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

В этом числе уже содержится 65536 цифр!
Ну а в числе 2↑↑6 количество цифр будет равно 2↑↑5.

В числе 2↑↑7 количество цифр будет равно 2↑↑6, и.т.д.

(Примечание: Количество цифр в двоичной записи. В десятичной записи цифр будет примерно в 3 раза меньше, что не имеет особого значения на таких масштабах).

Уже 2↑↑6 нельзя записать в обычном десятичном виде, даже если мы бы могли записать цифру в каждом атоме вещества во вселенной. Даже если бы в каждом атоме во Вселенной содержалась целая мини-вселенная, мы бы не смогли записать и толику цифр этого числа на всех атомах мини-вселенной в каждом атоме нашей вселенной. Чтобы все-таки это сделать, уровень вложенности этих мини-вселенных должен быть равен примерно 250. Хотя, признаюсь честно, мог ошибиться. Разбор в комментариях приветсвую)

Повторюсь — это все про число 2↑↑6, а уже в числе 2↑↑7 количество цифр равно 2↑↑6, и.т.д.

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

(Картинка для стимуляции воображения™ )

А ведь это только тетрация — четвертый по счету гипероператор.

Пентация, гексация, и последующие гипероператоры в нотации Кнута записываются аналогично предыдущим — количество стрелок на 2 меньше порядка гипероператора.

Вот пентация:

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

И гексация:

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

Не забываем, что вычислять нужно справа налево!

Слишком много стрелочек писать долго, поэтому n-тацию сократим следующим образом:

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

Хоть как-то осознать масштаб пентации еще можно, так что приведу пример.

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

Вспомните тетрацию: количество цифр в числе 3↑↑7625597484987 равно числу 3↑↑(7625597484987 - 1). Дальше думайте сами, а я себя лучше пожалею.

Теперь мы готовы, чтобы поговорить о числе Грэма.

В свое время его записали в книгу рекордов Гиннесса, как «самое большое число, когда-либо участвовавшее в серьезном математическом доказательстве». Сейчас это уже не так, но об этом в следующей части.

Число Грэма — оценка числа измерений пространства (обозначим, как N), при котором начинает выполняться некоторое комбинаторное свойство N-мерного гиперкуба. Если вы когда-то пытались представить 4 измерения, и вас не получилось — даже не пытайтесь представить пространство с числом Грэма измерений. Не получится.

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

(воображение уже не поможет, задействуйте абстрактное мышление™)

Не получится и определить его напрямую через нотацию Кнута, но можно итеративно. (Вспомните, как мы в начале поста определили сложение). Поехали.

Первое число в последовательности — g(1), определим как

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

Уже g(1) находится вне досягаемости в принципе чего угодно. Следующее — g(2), уже нельзя определить через нотацию Кнута напрямую, ведь количество стрелочек уже равно g(1).

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

В числе g(3) уже g(2) стрелочек, в g(4) — g(3) стрелочек, и.т.д. Число Грэма — это 64 число в последовательности, то есть g(64).

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

(картинка из википедии)

Не имеет смысла писать, насколько это много.

Поэтому скажу только, что в терминах быстрорастущей иерархии последовательность g(n) примерно порядка

Айсберг больших чисел. Часть 2. Подводное течение Научпоп, Математика, Длиннопост

и это только самое начало. Но об этом в следующий раз. Ждите через пару недель.

Показать полностью 16
712

Айсберг больших чисел. Часть 1. Поверхностные воды1

Не знаю, как у вас, но я в детстве с друзьями иногда играл в своеобразную "игру" — у кого больше. Начиналось все примерно с миллиона, а заканчивалось конструкциями типа "А у меня бесконечность бесконечностей бесконечностей бесконечностей и так бесконечность бесконечностей раз!".

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

Этот пост навеян вики-сообществом "Гугология" и несколькими популярными изложениями: тык, тык, тык. И я бы не писал этот пост, если бы то, что рассказывают о больших числах, было изложено понятно, на русском и без неточностей. А еще мне нравится выпендриваться)))

Для понимания темы нужно знание математики до 7-8 класса, воображение и немного абстрактного мышления.

Айсберг больших чисел. Часть 1. Поверхностные воды Математика, Научпоп, Длиннопост

Начнем с какого-нибудь не особенно большого числа, например, триллион. Записывается триллион как 1 000 000 000 000 или короче — как 10 в 12 степени. Это число не особенно большое в сравнении с теми монстрами, о которых еще поговорим — более того, его можно очень легко представить.

Возьмем шарик от шариковой ручки — его размер примерно равен одному миллиметру, а объем — одному кубическому миллиметру. Один кубический метр равен миллиарду кубических миллиметров, а объем олимпийского бассейна — примерно 2000 кубических метров. Перемножаем и получаем, что целых 2 триллиона шариков от шариковых ручек может поместиться в одном олимпийском бассейне. И если вы можете представить объем олимпийского бассейна и объем шарика одновременно — поздравляю, вы представили триллион! Даже два!

Айсберг больших чисел. Часть 1. Поверхностные воды Математика, Научпоп, Длиннопост
Айсберг больших чисел. Часть 1. Поверхностные воды Математика, Научпоп, Длиннопост

(Картинки из гугла, чтобы помочь воображению)
Этот трюк плохо работает с триллионом, расположенным в одну линию, например, триллион секунд составляет около 30 000 лет, что для многих неожиданно много.
А таким "объемным" способом можно представить себе числа вплоть до масштабов квинтиллиона — или 1 000 000 000 000 000 000, или 10 в 18 степени.

Нередко в физике встречаются числа и больше, например, масса Солнца в килограммах (10 в 30 степени) или энергия сверхновой звезды в джоулях (10 в 46 степени). (В одной калории примерно 4 джоуля).

Далее по списку идет знаменитый гугол — 10 в 100 степени — число уже достаточно большое, чтобы даже в физике почти не нашлось ничего похожего. Пожалуй, ближе всего к гуголу в мире физики подобралась т.н. "планковская плотность", или

Айсберг больших чисел. Часть 1. Поверхностные воды Математика, Научпоп, Длиннопост

что всего лишь в 2 тысячи раз меньше гугола. Ну а самое большое число, имеющее хоть какой-то физический смысл прямо сейчас — это 10 в 185 степени, или количество планковских объемов — самых маленьких частей пространства в физике — в наблюдаемой части вселенной.

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

Например, количество всех возможных картинок размером 1024x1024 пикселя можно представить как количество всех возможных таблиц пикселей размером 1024x1024. Каждый пиксель может быть раскрашен в один из 16,8 миллиона цветов, а всего таких пикселей примерно миллион. Теперь, если грамотно все подсчитать, получится число

Айсберг больших чисел. Часть 1. Поверхностные воды Математика, Научпоп, Длиннопост

то есть 10 в 7 600 000 степени.

Представить такое число напрямую уже нельзя, но косвенно можно — дело в том, что все возможные картинки размером 1024x1024 пикселя содержат:

  1. Все возможные фото всех людей, существовавших или не существовавших на земле во всех мыслимых и немыслимых позах, во всех мыслимых и немыслимых местах.

  2. Все картины, когда либо написанные и еще не написанные, во всех возможных стилях.

  3. Все картины и фото из предыдущих двух пунктов, но у которых на верхний левый угол наложено кофейное пятно фильтром из фотошопа.

  4. Все картины и фото из двух первых пунктов, но к каждой из них различным образом прифотошоплен свидетель из Фрязино.

  5. Все сканы страниц всех книг, которые написаны и не написаны, в том числе те, что отсканированы плохо.

  6. Может быть, где-то в этом множестве есть та самая картинка из крипипасты, вызывающая у людей ужас и заставляющая вырывать себе глаза.

Но при этом подавляющая часть этих картинок выглядит примерно так:

Айсберг больших чисел. Часть 1. Поверхностные воды Математика, Научпоп, Длиннопост

Так вот, всего таких изображений как раз 10 в 7 600 000 степени.
Кстати, очень похожая концепция описана в рассказе Хорхе Луиса Борхеса "Вавилонская библиотека", рекомендую.

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

Адекватные претензии по форме и содержанию приветствую.
P.S. Второй пост

Отличная работа, все прочитано!