Метод записи очень больших целых чисел
В математике восходящая нотация Кнута — это метод записи очень больших целых чисел , введенный Дональдом Кнутом в 1976 году . [1]
В своей статье 1947 года [2] Р. Л. Гудстейн представил конкретную последовательность операций, которые теперь называются гипероперациями . Гудстейн также предложил греческие названия тетрация , пентация и т. д. для расширенных операций за пределами возведения в степень . Последовательность начинается с унарной операции ( функция-последователь с n = 0) и продолжается бинарными операциями сложения ( n = 1), умножения ( n = 2), возведения в степень ( n = 3), тетрации ( n = 4), пентации ( n = 5) и т. д. Для представления гиперопераций использовались различные обозначения . Одно из таких обозначений — обозначение со стрелкой вверх Кнута. Другое — обозначение со стрелкой вверх. Например:
- одиночная стрелка представляет собой возведение в степень (повторное умножение)
- двойная стрелка представляет тетрацию (повторное возведение в степень)
- тройная стрелка представляет пентацию (повторяющуюся тетрацию)
Общее определение обозначения со стрелкой вверх выглядит следующим образом (для ):
Здесь обозначает n стрелок, например
Квадратные скобки — это еще одно обозначение для гиперопераций.
Введение
Гипероперации естественным образом расширяют арифметические операции сложения и умножения следующим образом. Сложение с натуральным числом определяется как итеративное приращение :
Умножение на натуральное число определяется как повторное сложение :
Например,
Возведение в степень натурального числа определяется как итеративное умножение, которое Кнут обозначал одной стрелкой, направленной вверх:
Например,
Тетрация определяется как итеративное возведение в степень, которое Кнут обозначил «двойной стрелкой»:
Например,
Выражения вычисляются справа налево, поскольку операторы определены как правоассоциативные .
Согласно этому определению,
- и т. д.
Это уже приводит к некоторым довольно большим числам, но последовательность гипероператоров на этом не заканчивается.
Пентация , определяемая как итерированная тетрация, представлена «тройной стрелкой»:
Гексация , определяемая как итерированная пентация, представлена «четверной стрелкой»:
и так далее. Общее правило заключается в том, что оператор -стрелка расширяется в правоассоциативный ряд операторов ( )-стрелка. Символически,
Примеры:
Обозначение
В выражениях, таких как , запись возведения в степень обычно заключается в записи показателя степени в виде надстрочного индекса к основанию числа . Но многие среды — такие как языки программирования и электронная почта с обычным текстом — не поддерживают набор надстрочных индексов . Люди приняли линейную запись для таких сред; стрелка вверх означает «возведение в степень». Если набор символов не содержит стрелку вверх, вместо нее используется каретка (^).
Надстрочная нотация плохо поддается обобщению, что объясняет, почему Кнут решил работать с внутристрочной нотацией .
является более короткой альтернативной записью для n стрелок вверх. Таким образом .
Запись восходящей стрелочной нотации в терминах степеней
Попытка записать с использованием привычной надстрочной записи дает степенную башню .
- Например:
Если является переменной величиной (или слишком большой), то башня мощности может быть записана с использованием точек и примечания, указывающего высоту башни.
Продолжая эту запись, можно записать ее с помощью стопки таких башен мощности, каждая из которых описывает размер той, что находится выше.
Опять же, если является переменной или слишком велик, стек может быть записан с использованием точек и примечания, указывающего его высоту.
Кроме того, можно записать, используя несколько столбцов таких стопок энергетических башен, причем каждый столбец описывает количество энергетических башен в стопке слева от него:
И в более общем плане:
Это можно было бы выполнять бесконечно, чтобы представить как итеративное возведение в степень итеративного возведения в степень для любых , и (хотя это, очевидно, становится довольно громоздким).
Использование тетрации
Обозначение Руди Ракера для тетрации позволяет нам сделать эти диаграммы немного проще, по-прежнему используя геометрическое представление (мы могли бы назвать их башнями тетрации ).
Наконец, в качестве примера, четвертое число Аккермана можно представить как:
Обобщения
Некоторые числа настолько велики, что множественные стрелки в обозначении Кнута со стрелкой вверх становятся слишком громоздкими; тогда полезен оператор n -стрелки (а также для описаний с переменным числом стрелок) или, что эквивалентно, гипероператоры .
Некоторые числа настолько велики, что даже эта нотация недостаточна. Тогда можно использовать нотацию цепочечных стрелок Конвея : цепочка из трех элементов эквивалентна другим нотациям, но цепочка из четырех или более элементов еще более мощна.
= , Так как = = , Таким образом, результат получается следующим:
= или (Петильон)
Даже быстрорастущие функции можно классифицировать с помощью порядкового анализа, называемого быстрорастущей иерархией . Быстрорастущая иерархия использует последовательную итерацию функции и диагонализацию для систематического создания быстрорастущих функций из некоторой базовой функции . Для стандартной быстрорастущей иерархии с использованием , уже демонстрирует экспоненциальный рост, сравним с тетрациональным ростом и ограничен сверху функцией, включающей первые четыре гипероператора;. Тогда, сравнима с функцией Аккермана , уже находится за пределами досягаемости индексированных стрелок, но может использоваться для аппроксимации числа Грэма и сравнима с произвольной длинной цепочкой стрелок Конвея.
Все эти функции вычислимы. Даже более быстрые вычислимые функции, такие как последовательность Гудстейна и последовательность TREE , требуют использования больших порядковых чисел и могут встречаться в определенных комбинаторных и теоретико-доказательных контекстах. Существуют функции, которые растут невычислимо быстро, такие как Busy Beaver , сама природа которых будет полностью вне досягаемости любой восходящей стрелки или даже любого порядкового анализа.
Определение
Без ссылки на гипероперацию операторы со стрелкой вверх можно формально определить следующим образом:
для всех целых чисел с [nb 1] .
Это определение использует возведение в степень как базовый случай, а тетрацию как повторное возведение в степень. Это эквивалентно последовательности гиперопераций, за исключением того, что оно опускает три более базовые операции: последовательность , сложение и умножение .
В качестве альтернативы можно выбрать умножение в качестве базового случая и итерировать оттуда. Тогда возведение в степень становится повторным умножением. Формальное определение будет таким:
для всех целых чисел с .
Однако следует отметить, что Кнут не определил «нулевую стрелку» ( ). Можно было бы расширить обозначение до отрицательных индексов (n ≥ -2) таким образом, чтобы согласовать всю последовательность гиперопераций, за исключением задержки в индексации:
Операция «стрелка вверх» является правоассоциативной операцией , то есть понимается как , а не . Если неоднозначность не является проблемой, скобки иногда опускаются.
Таблицы значений
Вычисление 0↑н б
Вычисление результатов в
- 0, когда n = 0 [nb 2]
- 1, когда n = 1 и b = 0 [nb 1] [nb 3]
- 0, когда n = 1 и b > 0 [nb 1] [nb 3]
- 1, когда n > 1 и b четное (включая 0)
- 0, когда n > 1 и b нечетное
Вычисления 2↑н б
Вычисления можно переформулировать в терминах бесконечной таблицы. Мы размещаем числа в верхней строке и заполняем левый столбец значениями 2. Чтобы определить число в таблице, возьмите число сразу слева, затем найдите требуемое число в предыдущей строке, в позиции, заданной только что взятым числом.
Таблица такая же, как и у функции Аккермана , за исключением сдвига в и , а также прибавления 3 ко всем значениям.
Вычисления 3↑н б
Размещаем числа в верхней строке и заполняем левый столбец значениями 3. Чтобы определить число в таблице, берем число, стоящее слева, затем ищем требуемое число в предыдущей строке, на позиции, заданной только что взятым числом.
Вычисления 4↑н б
Размещаем числа в верхней строке и заполняем левый столбец значениями 4. Чтобы определить число в таблице, берем число, расположенное непосредственно слева, затем ищем требуемое число в предыдущей строке, на позиции, заданной только что взятым числом.
Вычисления 10↑н б
Размещаем числа в верхней строке и заполняем левый столбец значениями 10. Чтобы определить число в таблице, берем число, стоящее сразу слева, затем ищем требуемое число в предыдущей строке, на позиции, заданной только что взятым числом.
Для 2 ≤ b ≤ 9 числовой порядок чисел является лексикографическим порядком с n в качестве самого значимого числа, поэтому для чисел этих 8 столбцов числовой порядок просто строка за строкой. То же самое применимо к числам в 97 столбцах с 3 ≤ b ≤ 99, и если мы начнем с n = 1 даже для 3 ≤ b ≤ 9 999 999 999.
Смотрите также
Примечания
- ^ abc Более подробную информацию см. в разделе Степени нуля .
- ^ Имейте в виду, что Кнут не определил оператор .
- ^ ab Для получения более подробной информации см. Ноль в степени ноль .
Ссылки
- ^ Кнут, Дональд Э. (1976). «Математика и информатика: преодоление конечности». Science . 194 (4271): 1235–1242. Bibcode :1976Sci...194.1235K. doi :10.1126/science.194.4271.1235. PMID 17797067. S2CID 1690489.
- ↑ RL Goodstein (декабрь 1947 г.). «Трансфинитные ординалы в рекурсивной теории чисел». Journal of Symbolic Logic . 12 (4): 123–129. doi :10.2307/2266486. JSTOR 2266486. S2CID 1318943.
Внешние ссылки