[Из песочницы] Число Грэма и взгляд в бесконечность
Вглядываться в бесконечность можно по-разному. Можно представлять себе всё увеличивающиеся астрономические числа и сопоставлять их с физическими явлениями. Можно всматриваться в выбранную точку фрактала Мандельброта, плавно увеличивая масштаб в 10198 раз (можно и больше, но в угоду скорости страдает наглядность). Фрактал, сколь малую часть его не бери, остаётся самоподобным и сохраняет дробную структуру.
А можно представлять себе число Грэма так, как его представляет автор статьи «Число Грэма на пальцах». Число Грэма настолько велико, что даже если вы представите себе какое-то чудовищно большое астрономическое число, а потом возведёте его в столь же чудовищную степень, а потом повторите всё это чудовищное число раз — то вы даже не стронетесь с места на шкале того пути, что ведёт к числу Грэма. Чтобы сосчитать до числа Грэма, придётся научиться считать совсем иначе, нежели мы привыкли — представляя, что путь в бесконечность лежит через дописывание нулей к известным нам астрономическим числам. В этой системе счёта загибанию пальца на руке будет соответствовать не прибавление к числу единицы или миллиона, не дописывание нуля или сотен нулей разом, но шаг от сложения к умножению, от умножения к возведению в степень и дальше в невообразимые дали.
Сразу предупреждаю, что все эти упражнения небезыздержечны — не увлекайтесь, берегите своё душевное здоровье. Однако иногда полезно всмотреться в бесконечность, чтобы понять, где ты и что ты ей, как человек, можешь противопоставить.
Для меня в своё время взгляд бесконечность, подобный описанному «на пальцах» числу Грэма, дала функция Аккермана (которую приводят как пример сложной рекурсивной функции в теории алгоритмов). Она тесно связана со стрелочной записью Кнута, используемой в статье про число Грэма.
Идея очень простая. Возьмём в качестве нулевого шага операцию увеличения на 1, инкремент. Т.е. X + 1. В качестве первого шага возьмём инкремент, повторённый Y раз. Получим X + Y, т.е. операцию сложения. В качестве второго шага возьмём сложение X с самим собой, повторённое Y раз. Получим X · Y, т.е. операцию умножения. На третьем шаге получаем операцию возведения в степень, XY. На четвёртом получаем «башенку» степеней XXX длиной Y. На пятом — «башенку башенок» (то, что автор статьи про число Грэма на пальцах, назвал «безбашней»). Ну и так далее.
Если мы возьмём натуральное (т.е. неотрицательное целое) число и применим к нему операцию порядка, равного этому числу, то у нас получится примерно функция Аккермана (на самом деле, она определяется сложнее и от трёх или двух аргументов, но не суть).
Функция Аккермана растёт очень быстро, она растёт невыразимо быстро, она растёт быстрее чего угодно, что вы можете себе представить. Уже на пятом шаге она выходит за границы Вселенной. Но чтобы досчитать до числа Грэма за обозримое число шагов, даже её недостаточно. Нужно взять функцию Аккермана «второго порядка». Т.е. функцию Аккермана от функции Аккермана от функции Аккермана — и так Y раз. Получится эдакая «башенка» функций Аккермана. Вот такая «башенка» высотой в 64 этажа как раз до числа Грэма и досчитает.
Кажется, что осознание невыразимой величины этого числа может раздавить человека. Но не спешите с выводами. Автор упомянутой статьи, пытаясь оценить подступы к этому числу, сравнивает его элементы с числом частиц во Вселенной, сравнивает высоту «башенок» с расстоянием между планетами. Но вся эта кажущаяся с виду невыразимость сводится к числу «полтора». Ладно, пусть «два с половиной».
Поясню. Считать «бесконечность» (в кавычках — ибо любое число всё же конечно) нужно не тем, сколько песчинок она в себе содержит, а тем, сколько раз количество переходит в качество, сколько в ней нетривиальных идей. Посчитаем, сколько нетривиальных идей в числе Грэма. Функция Аккермана с её порядком арифметической операции как аргументом функции — идея раз. Применение функции Аккермана к самой себе — даже на полноценную идею не тянет, так, на половинку (а ведь можно представить и функцию Аккермана третьего порядка, чтобы ещё большее число получить —, но тем отчётливее вырожденность идеи). Добавим ещё, собственно, описание задачи, в рамках которой появилось число Грэма (покраска в случайную комбинацию двух цветов диагоналей многомерных гиперкубов), чтобы иметь представление, где остановиться в нашем счёте — и получим две с половиной идеи.
Вроде, с одной стороны, почти необозримая бесконечность —, а с другой стороны, тривиальность. Поставьте два зеркала друг напротив друга, встаньте между ними — и вы увидите бесконечное количество всё более тускнеющих отражений. Отражений бесконечное количество, но оригинал у них один — отражаетесь лишь вы сами.
Если в каком-то явлении вы замечаете, что с какого-то момента начинают повторяться лишь ухудшающиеся (в лучшем случае, такие же) копии того, что уже было раньше — то это дурная бесконечность, ложная. Движение по её шкале — лишь видимость жизни, но по сути это западня для вашего сознания.
Например, знакомитесь вы с каким-то произведением — книгой, фильмом, видеоигрой — и замечаете, что с какого-то момента произведение начинает повторять само себя. Пожалуй, больше всего этим грешат видеоигры — бесконечные квесты «убей столько-то таких-то монстров», «принеси то-то туда-то», экспоненциально растущая стоимость всё более вычурного оружия и доспехов для борьбы со всё более живучими врагами, дающими всё больше игровых денег. Если повторение перестало раскрывать исходную идею и стало самоцелью, то оставьте это произведение — оно свалилось в дурную бесконечность и лишь утянет вас от истинного пути.
Или вот был хороший оригинал — и сделали ему сиквел, приквел или ответвление сюжета. Чем наполнить? Известно чем — взять всё то же, что в оригинале, но в бОльших количествах и иначе скомбинированное. Была одна идея, стало полторы. Этих сиквелов можно теперь бесконечное число делать, зарабатывая деньги на тех, кому полюбился оригинал. И опять перед нами дурная бесконечность.
Вообще, возьми любой жанр — и большую часть его составят повторения, ухудшенные копии родоначальника жанра. Если вы чувствуете, что задыхаетесь в засилье этих похожих друг на друга отражений — плывите против течения, ищите источник отражений. Лишь так вы сможете в лабиринте дурной бесконечности отыскать истинный путь.