После этого последовательность продолжается с дальнейшими бинарными операциями, выходящими за пределы возведения в степень, используя правую ассоциативность . Для операций за пределами возведения в степень n-й член этой последовательности назван Рубеном Гудштейном в честь греческого префикса n с суффиксом -ation (например, тетрация ( n = 4), пентация ( n = 5), гексация ( n = 6) и т. д.) [5] и может быть записан как с использованием n − 2 стрелок в нотации Кнута со стрелкой вверх . Каждая гипероперация может быть понята рекурсивно в терминах предыдущей следующим образом:
Его также можно определить в соответствии с частью определения, содержащей правило рекурсии, как в версии функции Аккермана со стрелкой вверх Кнута :
Это можно использовать для простого отображения чисел, намного больших, чем те, которые может показать научная запись , например, число Скьюза и гуголплексплекс (например, намного больше числа Скьюза и гуголплексплекса), но есть некоторые числа, которые даже они не могут легко показать, например, число Грэма и TREE(3) . [14]
Это правило рекурсии является общим для многих вариантов гиперопераций.
Для n = 0, 1, 2, 3 это определение воспроизводит основные арифметические операции следования (которая является унарной операцией), сложения , умножения и возведения в степень соответственно, как
Так какая же будет следующая операция после возведения в степень? Мы определили умножение так, что и определили возведение в степень так, что поэтому кажется логичным определить следующую операцию, тетрацию, так, что с башней из трех «а». Аналогично, пентация (a, 3) будет тетрацией(a, тетрацией(a, a)), с тремя «а» в ней.
Обозначение Кнута можно распространить на отрицательные индексы ≥ −2 таким образом, чтобы оно согласовывалось со всей последовательностью гиперопераций, за исключением задержки в индексации:
проиллюстрирована связь между основными арифметическими операциями, что позволяет естественным образом определить более высокие операции, как указано выше. Параметры иерархии гиперопераций иногда называют их аналогичным термином возведения в степень; [15] так, a — это основание , b — это показатель степени (или гиперпоказатель степени ), [12] и n — это ранг (или степень ), [6] и, кроме того, читается как « b -я n -ация числа a », например, читается как «9-я тетрация числа 7» и читается как «789-я 123-ация числа 456».
В общих чертах, гипероперации — это способы соединения чисел, которые увеличиваются в росте на основе итерации предыдущей гипероперации. Концепции следования, сложения, умножения и возведения в степень — все это гипероперации; операция следования (производящая x + 1 из x ) является наиболее примитивной, оператор сложения указывает, сколько раз 1 должна быть добавлена к себе самой для получения конечного значения, умножение указывает, сколько раз число должно быть добавлено к себе самой, а возведение в степень относится к тому, сколько раз число должно быть умножено само на себя.
Определение с использованием итерации
Определим итерацию функции f двух переменных как
Последовательность гиперопераций может быть определена в терминах итерации следующим образом. Для всех целых чисел определите
Так как итерация ассоциативна , последнюю строку можно заменить на
Основное определение последовательности гиперопераций соответствует правилам редукции
Для вычисления можно использовать стек , который изначально содержит элементы .
Затем, до тех пор, пока это невозможно, три элемента выталкиваются и заменяются в соответствии с правилами [примечание 2]
Схематически, начиная с :
WHILE длина стека <> 1{ ВЫТЯНУТЬ 3 элемента; ВЫТЯНУТЬ 1 или 5 элементов согласно правилам r1, r2, r3, r4, r5;}
Пример
Вычислить . [16]
Последовательность редукции: [nb 2] [17]
При реализации с использованием стека, на входе
конфигурации стека
представляют уравнения
TRS на основе определения подпункта 1.2
Определение с использованием итерации приводит к другому набору правил редукции.
Так как итерация ассоциативна , то вместо правила r11 можно определить
Как и в предыдущем разделе, вычисление можно реализовать с использованием стека.
Первоначально стек содержит четыре элемента .
Затем, до окончания, четыре элемента выталкиваются и заменяются в соответствии с правилами [примечание 2]
Схематически, начиная с :
WHILE длина стека <> 1{ ВЫТЯНУТЬ 4 элемента; ВЫТЯНУТЬ 1 или 7 элементов согласно правилам r6, r7, r8, r9, r10, r11;}
Пример
Вычислить .
На входе последовательные конфигурации стека
Соответствующие равенства имеют вид
Когда правило редукции r11 заменяется правилом r12, стек преобразуется в соответствии с
Последовательные конфигурации стека будут тогда
Соответствующие равенства имеют вид
Замечания
это особый случай. См. ниже. [nb 3] [nb 4]
Вычисление по правилам {r6 - r10, r11} является сильно рекурсивным. Виновником является порядок выполнения итерации: . Первый исчезает только после того, как вся последовательность развернута. Например, сходится к 65536 за 2863311767 шагов, максимальная глубина рекурсии [18] составляет 65534.
Вычисление по правилам {r6 - r10, r12} более эффективно в этом отношении. Реализация итерации как имитирует повторное выполнение процедуры H. [19] Глубина рекурсии, (n+1), соответствует вложенности цикла. Мейер и Ритчи (1967) формализовали это соответствие. Вычисление по правилам {r6-r10, r12} также требует 2863311767 шагов для сходимости к 65536, но максимальная глубина рекурсии составляет всего 5, поскольку тетрация является 5-м оператором в последовательности гиперопераций.
Приведенные выше соображения касаются только глубины рекурсии. Любой из способов итерации приводит к одинаковому числу шагов редукции, включающих одни и те же правила (когда правила r11 и r12 считаются «одинаковыми»). Как показывает пример, редукция сходится за 9 шагов: 1 X r7, 3 X r8, 1 X r9, 2 X r10, 2 X r11/r12. Modus iterandi влияет только на порядок, в котором применяются правила редукции.
Примеры
Ниже приведен список первых семи (от 0-й до 6-й) гиперопераций ( 0⁰ определяется как 1).
Одно из самых ранних обсуждений гиперопераций было проведено Альбертом Беннетом в 1914 году, который разработал некоторые теории коммутативных гиперопераций (см. ниже). [6] Примерно 12 лет спустя Вильгельм Аккерман определил функцию , которая несколько напоминает последовательность гиперопераций. [20]
В своей статье 1947 года [5] Рубен Гудстейн ввел конкретную последовательность операций, которые теперь называются гипероперациями , а также предложил греческие названия тетрация , пентация и т. д. для расширенных операций за пределами возведения в степень (потому что они соответствуют индексам 4, 5 и т. д.). Как функция с тремя аргументами, например, , последовательность гиперопераций в целом рассматривается как версия исходной функции Аккермана — рекурсивной , но не примитивно рекурсивной — модифицированной Гудстейном для включения примитивной функции-последователя вместе с другими тремя основными операциями арифметики ( сложение , умножение , возведение в степень ) и для более плавного расширения их за пределы возведения в степень.
Первоначальная функция Аккермана с тремя аргументами использует то же правило рекурсии, что и ее версия Гудстейна (т. е. последовательность гиперопераций), но отличается от нее двумя способами. Во-первых, определяет последовательность операций, начиная со сложения ( n = 0), а не функции-последователя , затем умножение ( n = 1), возведение в степень ( n = 2) и т. д. Во-вторых, начальные условия для результата в , таким образом, отличаясь от гиперопераций за пределами возведения в степень. [7] [21] [22] Значение b + 1 в предыдущем выражении заключается в том, что = , где b подсчитывает количество операторов (возведений в степень), а не подсчитывает количество операндов ("a"), как это делает b в , и так далее для операций более высокого уровня. (Подробнее см . в статье о функции Аккермана .)
Обозначения
Это список обозначений, которые использовались для гиперопераций.
В 1928 году Вильгельм Аккерман определил функцию с тремя аргументами , которая постепенно превратилась в функцию с двумя аргументами, известную как функция Аккермана . Первоначальная функция Аккермана была менее похожа на современные гипероперации, поскольку его начальные условия начинались с для всех n > 2. Кроме того, он назначил сложение на n = 0, умножение на n = 1 и возведение в степень на n = 2, поэтому начальные условия производят совершенно разные операции для тетрации и далее.
н
Операция
Комментарий
0
1
2
3
Смещенная форма тетрации . Итерация этой операции отличается от итерации тетрации.
Другое начальное условие, которое использовалось, — это (где база постоянна ), предложенное Рожей Петером , которое не образует иерархию гиперопераций.
Вариант начиная с 0
В 1984 году CW Clenshaw и FWJ Olver начали обсуждение использования гиперопераций для предотвращения переполнения вычислений с плавающей точкой . [29]
С тех пор многие другие авторы [30] [31] [32] возобновили интерес к применению гиперопераций к представлению с плавающей точкой . (Поскольку H n ( a , b ) все определены для b = -1.) При обсуждении тетрации Кленшоу и др. предположили начальное условие , что создает еще одну иерархию гиперопераций. Как и в предыдущем варианте, четвертая операция очень похожа на тетрацию , но смещена на единицу.
н
Операция
Комментарий
0
1
2
3
4
Смещенная форма тетрации . Итерация этой операции сильно отличается от итерации тетрации.
Коммутативные гипероперации рассматривались Альбертом Беннетом еще в 1914 году, [6] , что, возможно, является самым ранним замечанием о любой последовательности гиперопераций. Коммутативные гипероперации определяются правилом рекурсии
которая симметрична относительно a и b , что означает, что все гипероперации коммутативны. Эта последовательность не содержит возведения в степень , и поэтому не образует иерархию гиперопераций.
Системы исчисления, основанные на последовательности гиперопераций
RL Goodstein [5] использовал последовательность гипероператоров для создания систем счисления неотрицательных целых чисел. Так называемое полное наследственное представление целого числа n на уровне k и основании b можно выразить следующим образом, используя только первые k гипероператоров и используя в качестве цифр только 0, 1, ..., b − 1 вместе с самим основанием b :
Для 0 ≤ n ≤ b − 1 n представляется просто соответствующей цифрой.
При n > b − 1 представление n находится рекурсивно, сначала представляя n в виде
б [ к ] х к [ к − 1] х к − 1 [ к - 2] ... [2] х 2 [1] х 1
где x k , ..., x 1 — наибольшие целые числа, удовлетворяющие (в свою очередь)
б [ к ] х к ≤ n
б [ к ] х к [ к − 1] х к − 1 ≤ n
...
б [ к ] х к [ к − 1] х к − 1 [ к - 2] ... [2] х 2 [1] х 1 ≤ n
Любое x i, превышающее b − 1, затем переписывается таким же образом и так далее, повторяя эту процедуру до тех пор, пока результирующая форма не будет содержать только цифры 0, 1, ..., b − 1 вместе с основанием b .
Ненужных скобок можно избежать, предоставив операторам более высокого уровня более высокий приоритет в порядке оценки; таким образом,
представления уровня 1 имеют вид b [1] X, где X также имеет этот вид;
представления уровня 2 имеют вид b [2] X [1] Y, где X , Y также имеют этот вид;
представления уровня 3 имеют вид b [3] X [2] Y [1] Z, причем X , Y , Z также имеют этот вид;
представления уровня 4 имеют вид b [4] X [3] Y [2] Z [1] W, причем X , Y , Z , W также имеют этот вид;
и так далее.
В этом типе наследственного представления с основанием b в выражениях появляется само основание, а также «цифры» из набора {0, 1, ..., b − 1}. Это сопоставимо с обычным представлением с основанием 2, когда последнее записано в терминах основания b ; например, в обычной нотации с основанием 2 6 = (110) 2 = 2 [3] 2 [2] 1 [1] 2 [3] 1 [2] 1 [1] 2 [3] 0 [2] 0, тогда как наследственное представление с основанием 2 уровня 3 равно 6 = 2 [3] (2 [3] 1 [2] 1 [1] 0) [2] 1 [1] (2 [3] 1 [2] 1 [1] 0). Наследственные представления можно сократить, опустив любые примеры [1] 0, [2] 1, [3] 1, [4] 1 и т. д.; например, приведенное выше представление числа 6 на уровне 3 с основанием 2 сокращается до 2 [3] 2 [1] 2.
Примеры: Уникальные представления числа 266 в двоичной системе счисления на уровнях 1, 2, 3, 4 и 5 следующие:
Уровень 1: 266 = 2 [1] 2 [1] 2 [1] ... [1] 2 (с 133 двоек)
^ Последовательности, подобные последовательности гиперопераций , исторически назывались многими именами, включая: функция Аккермана [1] (3-аргументная), иерархия Аккермана [2] иерархия Гжегорчика [3] [4] (которая является более общей), версия функции Аккермана Гудстейна [5] операция n-й степени [ 6] z-кратное итеративное возведение в степень x с y [ 7] стрелочные операции [8] реихеналгебра [ 9] и гипер-n [ 1] [9] [10] [11] [12]
^ abc Пусть x = a [ n ](−1). По рекурсивной формуле a [ n ]0 = a [ n − 1]( a [ n ](−1)) ⇒ 1 = a [ n − 1] x . Одно решение — x = 0, поскольку a [ n − 1]0 = 1 по определению при n ≥ 4. Это решение единственно, поскольку a [ n − 1] b > 1 для всех a > 1, b > 0 (доказательство с помощью рекурсии).
^ ab Порядковое сложение не является коммутативным; см. порядковую арифметику для получения дополнительной информации.
Ссылки
^ abc Гейслер 2003.
^ Фридман 2001.
^ Кампаньола, Мур и Феликс Коста 2002.
^ Вирц 1999.
^ abcde Гудстейн 1947.
^ abcd Беннетт 1915.
^ ab Black 2009.
↑ Литтлвуд 1948.
^ abc Мюллер 1993.
^ Мунафо 1999a.
^ ab Роббинс 2005.
^ ab Галидакис 2003.
^ Рубцов и Ромерио 2005.
^ Таунсенд 2016.
^ Ромерио 2008.
^ Безем, Клоп и Де Вриер 2003.
^ На каждом шаге подчеркнутый редекс переписывается.
^ Максимальная глубина рекурсии относится к числу уровней активации процедуры, которые существуют во время самого глубокого вызова процедуры. Корнелиус и Кирби (1975)
Беннетт, Альберт А. (декабрь 1915 г.). «Заметка об операции третьего класса». Annals of Mathematics . Вторая серия. 17 (2): 74– 75. doi :10.2307/2007124. JSTOR 2007124.
Безем, Марк; Клоп, Ян Виллем; Де Вриер, Роэль (2003). «Системы переписывания терминов первого порядка». Системы переписывания терминов от «Терезы» . Издательство Кембриджского университета. стр. 38–39 . ISBN.0-521-39115-6.
Блэк, Пол Э. (16 марта 2009 г.). «Функция Аккермана». Словарь алгоритмов и структур данных . Национальный институт стандартов и технологий США (NIST) . Получено 29 августа 2021 г. .
Кампаньола, Мануэль Ламейрас; Мур, Кристофер ; Феликс Коста, Хосе (декабрь 2002 г.). «Трансфинитные ординалы в рекурсивной теории чисел». Журнал сложности . 18 (4): 977–1000 . doi : 10.1006/jcom.2002.0655 .
Clenshaw, CW; Olver, FWJ (апрель 1984). «За пределами плавающей точки». Журнал ACM . 31 (2): 319– 328. doi : 10.1145/62.322429 . S2CID 5132225.
Корнелиус, Б. Дж.; Кирби, Г. Х. (1975). «Глубина рекурсии и функция Акермана». BIT Numerical Mathematics . 15 (2): 144– 150. doi :10.1007/BF01932687. S2CID 120532578.
Cowles, J.; Bailey, T. (30 сентября 1988 г.). «Несколько версий функции Аккермана». Кафедра компьютерных наук, Университет Вайоминга, Ларами, Вайоминг . Получено 29 августа 2021 г.
Донер, Джон; Тарский, Альфред (1969). «Расширенная арифметика порядковых чисел». Фундамента Математика . 65 : 95–127 . doi : 10.4064/fm-65-1-95-127 .
Фридман, Харви М. (июль 2001 г.). «Длинные конечные последовательности». Журнал комбинаторной теории . Серия A. 95 (1): 102– 144. doi : 10.1006/jcta.2000.3154 .
Галидакис, ИН (2003). "Математика". Архивировано из оригинала 20 апреля 2009 года . Получено 17 апреля 2009 года .
Гейслер, Дэниел (2003). "Что лежит за пределами возведения в степень?" . Получено 17 апреля 2009 г. .
Гудстейн, Рубен Луис (декабрь 1947 г.). «Трансфинитные ординалы в рекурсивной теории чисел» (PDF) . Журнал символической логики . 12 (4): 123– 129. doi :10.2307/2266486. JSTOR 2266486. S2CID 1318943.
Гильберт, Дэвид (1926). «Über das Unendliche». Математические Аннален . 95 : 161–190 . doi : 10.1007/BF01206605. S2CID 121888793.
Holmes, WN (март 1997 г.). «Составная арифметика: предложение нового стандарта». Computer . 30 (3): 65– 73. doi :10.1109/2.573666 . Получено 21 апреля 2009 г. .
Кнут, Дональд Эрвин (декабрь 1976 г.). «Математика и информатика: как справиться с конечностью». Science . 194 (4271): 1235– 1242. Bibcode :1976Sci...194.1235K. doi :10.1126/science.194.4271.1235. PMID 17797067. S2CID 1690489 . Получено 21 апреля 2009 г. .
Литтлвуд, Дж. Э. (июль 1948 г.). «Большие числа». Mathematical Gazette . 32 (300): 163– 171. doi :10.2307/3609933. JSTOR 3609933. S2CID 250442130.
Мейер, Альберт Р.; Ритчи , Деннис Макалистер (1967). Сложность циклических программ . ACM '67: Труды 22-й национальной конференции 1967 года. doi : 10.1145/800196.806014 .
Мюллер, Маркус (1993). "Reihenalgebra" (PDF) . Архивировано из оригинала (PDF) 2 декабря 2013 года . Получено 6 ноября 2021 года .
Мунафо, Роберт (1999a). «Версии функции Аккермана». Большие числа в MROB . Получено 28 августа 2021 г.
Мунафо, Роберт (1999b). «Изобретение новых операторов и функций». Большие числа в MROB . Получено 28 августа 2021 г.
Намбиар, К. К. (1995). «Функции Аккермана и трансфинитные ординалы». Applied Mathematics Letters . 8 (6): 51– 53. doi : 10.1016/0893-9659(95)00084-4 .
Pinkiewicz, T.; Holmes, N.; Jamil, T. (2000). "Проектирование составного арифметического устройства для рациональных чисел". Труды IEEE Southeast Con 2000. "Подготовка к новому тысячелетию" (Cat. No.00CH37105). Труды IEEE. стр. 245–252 . doi :10.1109/SECON.2000.845571. ISBN0-7803-6312-4. S2CID 7738926.
Robbins, AJ (ноябрь 2005 г.). "Home of Tetration". Архивировано из оригинала 13 июня 2015 г. Получено 17 апреля 2009 г.
Romerio, GF (21 января 2008 г.). "Терминология гиперопераций". Форум Tetration . Получено 21 апреля 2009 г.
Рубцов, CA; Ромерио, GF (декабрь 2005 г.). "Функция Аккермана и новая арифметическая операция" . Получено 17 апреля 2009 г.
Таунсенд, Адам (12 мая 2016 г.). «Имена для больших чисел». Журнал Chalkdust .
Weisstein, Eric W. (2003). CRC concise encyclopedia of mathematics, 2nd Edition . CRC Press. стр. 127–128 . ISBN1-58488-347-2.
Вирц, Марк (1999). «Характеристика иерархии Гжегорчика с помощью безопасной рекурсии» (PDF) . Берн: Институт информатики и математики. CiteSeerX 10.1.1.42.3374 . S2CID 117417812.
Циммерман, Р. (1997). "Компьютерная арифметика: принципы, архитектуры и проектирование СБИС" (PDF) . Конспект лекций, Лаборатория интегрированных систем, ETH Zürich. Архивировано из оригинала (PDF) 17 августа 2013 г. . Получено 17 апреля 2009 г. .
Цвиллингер, Дэниел (2002). Стандартные математические таблицы и формулы CRC, 31-е издание . CRC Press. стр. 4. ISBN1-58488-291-3.