Стрелочная нотация или нотация со стрелками вверх — широко используемая нотация для гипероператоров, разработанная Дональдом Кнутом в 1976 году для представления больших чисел.[1][2] Кнут грубо представил как и как , которое решается справа налево.
Определение[]
Мы объясняем точный смысл первоначального определения Кнута. Для любых натуральных чисел , и , определяется следующим рекурсивным способом:
Эта нотация даёт общую вычислимую функцию
где обозначает набор целых положительных чисел. Читатели должны быть осторожны, что некоторые авторы неявно расширяют его так, что выполняется для любых целых положительных чисел и .
Он удовлетворяет следующим соотношениям, которые также характеризуют нотацию для любых целых положительных чисел , и :
Здесь рассматривается как сокращение для с стрелками. Итак, например, у нас есть . Операторы обозначения стрелками являются правоассоциативными; всегда означает .
В частности, - это возведение в степень, - это тетрация, - это пентация, и в целом является (n+ 2)-й гипероператором. В ASCII они часто записываются a^b, a^^b, a^^^b, ... или a**b, a***b, a****b в соответствии с некоторыми языками программирования, которые используют a^b или a**b для возведения в степень.
Приложение к гугологии[]
Функция является быстрорастущей функцией, которая в конечном итоге доминирует над всеми примитивными рекурсивными функциями и может быть аппроксимирована с использованием быстрорастущей иерархии как . Это предел нерасширенных гипероператоров и, соответственно, стрелочной нотации.
Стрелочная нотация может соотноситься с гипер E нотацией с помощью следующего правила:[3]
для целых положительных чисел a, b, c. Например,
- a↑b = E[a]b
- a↑↑b = E[a]1#b
- * а↑↑↑b = E[a]1#1#б
Стрелочная нотация была обобщена на другие нотации. Несколько примечательных из них - Цепная нотация стрел, BEAF и BAN. Она также была точно сравнена, среди прочего, с нотацией нотаций массива с использованием функции (a {2, количество стрелок}b).
Натан Хо и Wojowu показали, что стрелочная нотация заканчивается — то есть существует для всех .[4]
Примеры[]

Примеры серий 2 ↑n 3 с цветами для . Эта фотография включает в себя pt оператора.
Код для машины Тьюринга[]
Форма ввода: чтобы представить , поместите a 1, затем c + 2 ^, затем b 1. Например, 111^^^^^111 вычисляет тритри.
Код для машины Тьюринга
0 * * r 0 0 _ _ l 1 1 1 _ l 2 2 ^ _ l 3 2 1 1 l 4 3 ^ _ l 3 3 1 _ l 2 4 1 1 l 4 4 ^ 1 l 4' 4 _ 1 l halt 4' ^ ^ l 5 4' 1 1 r 0 5 ^ ^ l 5 5 1 1 r 6 6 ^ x r 7 6 1 y r 9 6 | ^ l 12 7 * * r 7 7 _ | r 8 7 | | r 8 8 * * r 8 8 _ ^ l 11 9 * * r 9 9 | | r 10 10 * * r 10 10 _ 1 l 11 11 * * l 11 11 x ^ r 6 11 y 1 r 6 12 * * l 12 12 ^ ^ l 12' 12' ^ ^ l 12' 12' * * l 13 12' 1 x r 14 13 * * l 13 13 ^ ^ r 20 13 _ _ r 20 13 1 x r 14 14 * * r 14 14 ^ ^ r 15 15 ^ ^ r 15 15 x x r 16 15 1 x l 12 16 x x r 16 16 1 x l 12 16 ^ x r 17 17 ^ ^ r 17 17 1 ^ r 18 18 ^ 1 r 17 18 1 1 r 18 18 _ 1 l 19 19 * * l 19 19 x x l 12 20 x 1 r 20 20 ^ ^ r 21 21 ^ ^ r 21 21 x x r 22 22 x x r 22 22 1 _ r 23 22 ^ ^ l 30 23 1 _ r 23 23 ^ ^ l 24 24 _ ^ r 25 25 ^ ^ r 25 25 1 1 l 26 26 ^ 1 r 27 27 1 1 r 27 27 _ _ l 28 28 1 _ l 29 29 * * l 29 29 _ ^ r 25 29 x 1 l 30 30 x 1 l 30 30 ^ ^ r 31 31 * * r 31 31 _ _ l 32 32 1 _ l 1
Примечания[]
- ↑ Дональд Э. Кнут, Математика и информатика: как справиться с конечностью, Достижения в нашей степени вычисления существенно приближают нас к конечным ограничениям, Science 194, стр. 1235--1242, 1976.
- ↑ Нотация Кнута со стрелками вверх из Wolfram Mathworld
- ↑ Кёдайсуу, Сравнение нотации со стрелкой вверх с гипер E нотацией 1 июля 2021
- ↑ http://snappizz.com/termination