Knuth 's up - arrow notation - wikipedia Knuth 's up - arrow notation In mathematics, Knuth 's up - arrow notation is a method of notation for very large integers, introduced by Donald Knuth in 1976. It is closely related to the Ackermann function and especially to the hyperoperation sequence. The idea is based on the fact that multiplication can be viewed as iterated addition and exponentiation as iterated multiplication. Continuing in this manner leads to tetration ( iterated exponentiation ) and to the remainder of the hyperoperation sequence, which is commonly denoted using Knuth arrow notation. This notation allows for a simple description of numbers far larger than can be explicitly written out. A single arrow means exponentiation ( iterated multiplication ), more than one arrow means iterating the operation associated with one less arrow. For example : single arrow is iterated multiplication ( exponentiation ) 2 ↑ 4 = 2 ∗ ( 2 ∗ ( 2 ∗ 2 ) ) = 2 4 = 16 ( displaystyle 2 \uparrow 4 = 2 * ( 2 * ( 2 * 2 ) ) = 2 ^ ( 4 ) = 16 ) double arrow is iterated exponentiation ( tetration ) 2 ↑ ↑ 4 = 2 ↑ ( 2 ↑ ( 2 ↑ 2 ) ) = 2 2 2 2 = 65536 ( displaystyle 2 \uparrow \uparrow 4 = 2 \uparrow ( 2 \uparrow ( 2 \uparrow 2 ) ) = 2 ^ ( 2 ^ ( 2 ^ ( 2 ) ) ) = 65536 ) triple arrow is iterated tetration 2 ↑ ↑ ↑ 3 = 2 ↑ ↑ ( 2 ↑ ↑ 2 ) = 2 ↑ ↑ ( 2 ↑ 2 ) = 2 ↑ ↑ 2 2 = 2 ↑ ↑ 4 = 2 ↑ 2 ↑ 2 ↑ 2 = 2 2 2 2 = 65536 ( displaystyle ( \begin ( aligned ) 2 \uparrow \uparrow \uparrow 3& = 2 \uparrow \uparrow ( 2 \uparrow \uparrow 2 ) & = 2 \uparrow \uparrow ( 2 \uparrow 2 ) & = 2 \uparrow \uparrow 2 ^ ( 2 ) & = 2 \uparrow \uparrow 4 & = 2 \uparrow 2 \uparrow 2 \uparrow 2 & = 2 ^ ( 2 ^ ( 2 ^ ( 2 ) ) ) & = 65536 end ( aligned ) ) ) The general definition of the notation is as follows ( for integer a and non-negative integers b, n ) : a ↑ n b = ( a b, if n = 1 ; 1, if n ≥ 1 and b = 0 ; a ↑ n − 1 ( a ↑ n ( b − 1 ) ), otherwise ( displaystyle a \uparrow ^ ( n ) b = left ( ( \begin ( matrix ) a ^ ( b ), & ( mbox ( if ) ) n = 1 ; 1, & ( mbox ( if ) ) n geq 1 ( mbox ( and ) ) b = 0 ; a \uparrow ^ ( n - 1 ) ( a \uparrow ^ ( n ) ( b - 1 ) ), & ( mbox ( otherwise ) ) end ( matrix ) ) \right. ) Contents 1 Introduction 2 Notation 2.1 Writing out up - arrow notation in terms of powers 2.1. 1 Using tetration 3 Generalizations 4 Definition 5 Tables of values 5.1 Computing 2 ↑ n 5.2 Computing 3 ↑ n 5.3 Computing 4 ↑ n 5.4 Computing 10 ↑ n 6 Numeration systems based on the hyperoperation sequence 7 See also 8 References 9 External links Introduction The ordinary arithmetical operations of addition, multiplication, and exponentiation are naturally extended into a sequence of hyperoperations as follows. Multiplication by a natural number is defined as iterated addition : a × b = a + a + ⋯ + a ⏟ b copies of a ( displaystyle ( \begin ( matrix ) a \times b& = & \underbrace ( a + a+ dots + a ) &&b ( mbox ( copies of ) ) a end ( matrix ) ) ) For example, 3 × 4 = 4 + 4 + 4 ⏟ = 12 3 copies of 4 ( displaystyle ( \begin ( matrix ) 3 \times 4& = & \underbrace ( 4 + 4 + 4 ) & = &12 &&3 ( mbox ( copies of ) ) 4 end ( matrix ) ) ) Exponentiation for a natural power b ( displaystyle b ) is defined as iterated multiplication, which Knuth denoted by a single up - arrow : a ↑ b = a b = a × a × ⋯ × a ⏟ b copies of a ( displaystyle ( \begin ( matrix ) a \uparrow b = a ^ ( b ) = & \underbrace ( a \times a \times dots \times a ) &b ( mbox ( copies of ) ) a end ( matrix ) ) ) For example, 4 ↑ 3 = 4 3 = 4 × 4 × 4 ⏟ = 64 3 copies of 4 ( displaystyle ( \begin ( matrix ) 4 \uparrow 3 = 4 ^ ( 3 ) = & \underbrace ( 4 \times 4 \times 4 ) & = &64 &3 ( mbox ( copies of ) ) 4 end ( matrix ) ) ) To extend the sequence of operations beyond exponentiation, Knuth defined a `` double arrow '' operator to denote iterated exponentiation ( tetration ) : a ↑ ↑ b = b a = a a... a ⏟ = a ↑ ( a ↑ ( ⋯ ↑ a ) ) ⏟ b copies of a b copies of a ( displaystyle ( \begin ( matrix ) a \uparrow \uparrow b& = ( ^ ( b ) a ) = & \underbrace ( a ^ ( a ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( a ) ) ) ) ) ) ) & = & \underbrace ( a \uparrow ( a \uparrow ( dots \uparrow a ) ) ) &&b ( mbox ( copies of ) ) a&&b ( mbox ( copies of ) ) a end ( matrix ) ) ) For example, 4 ↑ ↑ 3 = 3 4 = 4 4 4 ⏟ = 4 ↑ ( 4 ↑ 4 ) ⏟ = 4 256 ≈ 1.34078079 × 10 154 3 copies of 4 3 copies of 4 ( displaystyle ( \begin ( matrix ) 4 \uparrow \uparrow 3& = ( ^ ( 3 ) 4 ) = & \underbrace ( 4 ^ ( 4 ^ ( 4 ) ) ) & = & \underbrace ( 4 \uparrow ( 4 \uparrow 4 ) ) & = &4 ^ ( 256 ) & approx &1. 34078079 \times 10 ^ ( 154 ) & &&3 ( mbox ( copies of ) ) 4&&3 ( mbox ( copies of ) ) 4 end ( matrix ) ) ) Here and below evaluation is to take place from right to left, as Knuth 's arrow operators ( just like exponentiation ) are defined to be right - associative. According to this definition, 3 ↑ ↑ 2 = 3 3 = 27 ( displaystyle 3 \uparrow \uparrow 2 = 3 ^ ( 3 ) = 27 ) 3 ↑ ↑ 3 = 3 3 3 = 3 27 = 7, 625, 597, 484, 987 ( displaystyle 3 \uparrow \uparrow 3 = 3 ^ ( 3 ^ ( 3 ) ) = 3 ^ ( 27 ) = 7,625,597,484,987 ) 3 ↑ ↑ 4 = 3 3 3 3 = 3 3 27 = 3 7625597484987 ≈ 1.2580143 × 10 3638334640024 ( displaystyle 3 \uparrow \uparrow 4 = 3 ^ ( 3 ^ ( 3 ^ ( 3 ) ) ) = 3 ^ ( 3 ^ ( 27 ) ) = 3 ^ ( 7625597484987 ) approx 1.2580143 \times 10 ^ ( 3638334640024 ) ) 3 ↑ ↑ 5 = 3 3 3 3 3 = 3 3 3 27 = 3 3 7625597484987 ( displaystyle 3 \uparrow \uparrow 5 = 3 ^ ( 3 ^ ( 3 ^ ( 3 ^ ( 3 ) ) ) ) = 3 ^ ( 3 ^ ( 3 ^ ( 27 ) ) ) = 3 ^ ( 3 ^ ( 7625597484987 ) ) ) etc. This already leads to some fairly large numbers, but Knuth extended the notation. He went on to define a `` triple arrow '' operator for iterated tetration ( pentation ) : a ↑ ↑ ↑ b = a ↑ ↑ ( a ↑ ↑ ( ⋯ ↑ ↑ a ) ) ⏟ b copies of a ( displaystyle ( \begin ( matrix ) a \uparrow \uparrow \uparrow b = & \underbrace ( a_ ( ) \uparrow \uparrow ( a \uparrow \uparrow ( dots \uparrow \uparrow a ) ) ) &b ( mbox ( copies of ) ) a end ( matrix ) ) ) followed by a `` quadruple arrow `` operator for iterated pentation ( hexation ) : a ↑ ↑ ↑ ↑ b = a ↑ ↑ ↑ ( a ↑ ↑ ↑ ( ⋯ ↑ ↑ ↑ a ) ) ⏟ b copies of a ( displaystyle ( \begin ( matrix ) a \uparrow \uparrow \uparrow \uparrow b = & \underbrace ( a_ ( ) \uparrow \uparrow \uparrow ( a \uparrow \uparrow \uparrow ( dots \uparrow \uparrow \uparrow a ) ) ) &b ( mbox ( copies of ) ) a end ( matrix ) ) ) and so on. The general rule is that an n ( displaystyle n ) - arrow operator expands into a right - associative series of ( n − 1 ( displaystyle n - 1 ) ) - arrow operators. Symbolically, a ↑ ↑... ↑ ⏟ n b = a ↑... ↑ ⏟ n − 1 ( a ↑... ↑ ⏟ n − 1 (... ↑... ↑ ⏟ n − 1 a ) ) ⏟ b copies of a ( displaystyle ( \begin ( matrix ) a \underbrace ( \uparrow _ ( ) \uparrow ! ! dots ! ! \uparrow ) _ ( n ) \b = \underbrace ( a \underbrace ( \uparrow ! ! dots ! ! \uparrow ) _ ( n - 1 ) ( a \underbrace ( \uparrow _ ( ) ! ! dots ! ! \uparrow ) _ ( n - 1 ) ( dots \underbrace ( \uparrow _ ( ) ! ! dots ! ! \uparrow ) _ ( n - 1 ) a ) ) ) _ ( b ( \text ( copies of ) ) a ) end ( matrix ) ) ) Examples : 3 ↑ ↑ ↑ 2 = 3 ↑ ↑ 3 = 3 3 3 = 3 27 = 7, 625, 597, 484, 987 ( displaystyle 3 \uparrow \uparrow \uparrow 2 = 3 \uparrow \uparrow 3 = 3 ^ ( 3 ^ ( 3 ) ) = 3 ^ ( 27 ) = 7,625,597,484,987 ) 3 ↑ ↑ ↑ 3 = 3 ↑ ↑ ( 3 ↑ ↑ 3 ) = 3 ↑ ↑ ( 3 ↑ 3 ↑ 3 ) = 3 ↑ 3 ↑ ⋯ ↑ 3 ⏟ 3 ↑ 3 ↑ 3 copies of 3 = 3 ↑ 3 ↑ ⋯ ↑ 3 ⏟ 7,625,597,484,987 copies of 3 = 3 3 3 3 ⋅ ⋅ ⋅ ⋅ 3 ⏟ 7,625,597,484,987 copies of 3 ( displaystyle ( \begin ( matrix ) 3 \uparrow \uparrow \uparrow 3 = 3 \uparrow \uparrow ( 3 \uparrow \uparrow 3 ) = 3 \uparrow \uparrow ( 3 \uparrow 3 \uparrow 3 ) = & \underbrace ( 3_ ( ) \uparrow 3 \uparrow dots \uparrow 3 ) &3 \uparrow 3 \uparrow 3 ( mbox ( copies of ) ) 3 end ( matrix ) ) ( \begin ( matrix ) = & \underbrace ( 3_ ( ) \uparrow 3 \uparrow dots \uparrow 3 ) & ( mbox ( 7,625,597,484,987 copies of 3 ) ) end ( matrix ) ) ( \begin ( matrix ) = & \underbrace ( 3 ^ ( 3 ^ ( 3 ^ ( 3 ^ ( cdot ^ ( cdot ^ ( cdot ^ ( cdot ^ ( 3 ) ) ) ) ) ) ) ) ) & ( mbox ( 7,625,597,484,987 copies of 3 ) ) end ( matrix ) ) ) The notation a ↑ n b ( displaystyle a \uparrow ^ ( n ) b ) is commonly used to denote a ↑ ↑ ⋯ ↑ b ( displaystyle a \uparrow \uparrow dots \uparrow b ) with n arrows. In fact, a ↑ n b ( displaystyle a \uparrow ^ ( n ) b ) is a ( n + 2 ) b with hyperoperation. For example, 39 ↑ ↑ 14 ( displaystyle 39 \uparrow \uparrow 14 ) can also be written as 39 ( 4 ) 14 ( the `` ( 4 ) '' means tetration ), but it is not equal to 39 ( 2 ) 14 = 39 × 14 = 546 ; similarly, 77 ↑ 77 77 ( displaystyle 77 \uparrow ^ ( 77 ) 77 ) is equal to 77 ( 79 ) 77, instead of 77 ( 77 ) 77. Notation In expressions such as a b ( displaystyle a ^ ( b ) ), the notation for exponentiation is usually to write the exponent b ( displaystyle b ) as a superscript to the base number a ( displaystyle a ). But many environments -- such as programming languages and plain - text e-mail -- do not support superscript typesetting. People have adopted the linear notation a ↑ b ( displaystyle a \uparrow b ) for such environments ; the up - arrow suggests ' raising to the power of '. If the character set does n't contain an up arrow, the caret ( ^ ) is used instead. The superscript notation a b ( displaystyle a ^ ( b ) ) does n't lend itself well to generalization, which explains why Knuth chose to work from the inline notation a ↑ b ( displaystyle a \uparrow b ) instead. a ↑ n b ( displaystyle a \uparrow ^ ( n ) b ) is a shorter alternative notation for n uparrows. Thus a ↑ 4 b = a ↑ ↑ ↑ ↑ b ( displaystyle a \uparrow ^ ( 4 ) b = a \uparrow \uparrow \uparrow \uparrow b ). Writing out up - arrow notation in terms of powers Attempting to write a ↑ ↑ b ( displaystyle a \uparrow \uparrow b ) using the familiar superscript notation gives a power tower. For example : a ↑ ↑ 4 = a ↑ ( a ↑ ( a ↑ a ) ) = a a a a ( displaystyle a \uparrow \uparrow 4 = a \uparrow ( a \uparrow ( a \uparrow a ) ) = a ^ ( a ^ ( a ^ ( a ) ) ) ) If b is a variable ( or is too large ), the power tower might be written using dots and a note indicating the height of the tower. a ↑ ↑ b = a a... a ⏟ b ( displaystyle a \uparrow \uparrow b = \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( b ) ) Continuing with this notation, a ↑ ↑ ↑ b ( displaystyle a \uparrow \uparrow \uparrow b ) could be written with a stack of such power towers, each describing the size of the one above it. a ↑ ↑ ↑ 4 = a ↑ ↑ ( a ↑ ↑ ( a ↑ ↑ a ) ) = a a... a ⏟ a a... a ⏟ a a... a ⏟ a ( displaystyle a \uparrow \uparrow \uparrow 4 = a \uparrow \uparrow ( a \uparrow \uparrow ( a \uparrow \uparrow a ) ) = \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( a ) ) ) ) Again, if b is a variable or is too large, the stack might be written using dots and a note indicating its height. a ↑ ↑ ↑ b = a a... a ⏟ a a... a ⏟ ⋮ ⏟ a ) b ( displaystyle a \uparrow \uparrow \uparrow b = left. \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( \vdots ) _ ( a ) ) ) \right ) b ) Furthermore, a ↑ ↑ ↑ ↑ b ( displaystyle a \uparrow \uparrow \uparrow \uparrow b ) might be written using several columns of such stacks of power towers, each column describing the number of power towers in the stack to its left : a ↑ ↑ ↑ ↑ 4 = a ↑ ↑ ↑ ( a ↑ ↑ ↑ ( a ↑ ↑ ↑ a ) ) = a a... a ⏟ a a... a ⏟ ⋮ ⏟ a ) a a... a ⏟ a a... a ⏟ ⋮ ⏟ a ) a a... a ⏟ a a... a ⏟ ⋮ ⏟ a ) a ( displaystyle a \uparrow \uparrow \uparrow \uparrow 4 = a \uparrow \uparrow \uparrow ( a \uparrow \uparrow \uparrow ( a \uparrow \uparrow \uparrow a ) ) = left. left. left. \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( \vdots ) _ ( a ) ) ) \right ) \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( \vdots ) _ ( a ) ) ) \right ) \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( \vdots ) _ ( a ) ) ) \right ) a ) And more generally : a ↑ ↑ ↑ ↑ b = a a... a ⏟ a a... a ⏟ ⋮ ⏟ a ) a a... a ⏟ a a... a ⏟ ⋮ ⏟ a ) ⋯ ) a ⏟ b ( displaystyle a \uparrow \uparrow \uparrow \uparrow b = \underbrace ( left. left. left. \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( \vdots ) _ ( a ) ) ) \right ) \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( a ^ ( a ^ (. ^ (. ^ (. ( a ) ) ) ) ) ) _ ( \underbrace ( \vdots ) _ ( a ) ) ) \right ) cdots \right ) a ) _ ( b ) ) This might be carried out indefinitely to represent a ↑ n b ( displaystyle a \uparrow ^ ( n ) b ) as iterated exponentiation of iterated exponentiation for any a, n and b ( although it clearly becomes rather cumbersome ). Using tetration The tetration notation b a ( displaystyle ^ ( b ) a ) allows us to make these diagrams slightly simpler while still employing a geometric representation ( we could call these tetration towers ). a ↑ ↑ b = b a ( displaystyle a \uparrow \uparrow b = ( ) ^ ( b ) a ) a ↑ ↑ ↑ b = a... a a ⏟ b ( displaystyle a \uparrow \uparrow \uparrow b = \underbrace ( ^ ( ^ ( ^ ( ^ ( ^ ( a ). ). ). ) a ) a ) _ ( b ) ) a ↑ ↑ ↑ ↑ b = a... a a ⏟ a... a a ⏟ ⋮ ⏟ a ) b ( displaystyle a \uparrow \uparrow \uparrow \uparrow b = left. \underbrace ( ^ ( ^ ( ^ ( ^ ( ^ ( a ). ). ). ) a ) a ) _ ( \underbrace ( ^ ( ^ ( ^ ( ^ ( ^ ( a ). ). ). ) a ) a ) _ ( \underbrace ( \vdots ) _ ( a ) ) ) \right ) b ) Finally, as an example, the fourth Ackermann number 4 ↑ 4 4 ( displaystyle 4 \uparrow ^ ( 4 ) 4 ) could be represented as : 4... 4 4 ⏟ 4... 4 4 ⏟ 4... 4 4 ⏟ 4 = 4... 4 4 ⏟ 4... 4 4 ⏟ 4 4 4 4 ( displaystyle \underbrace ( ^ ( ^ ( ^ ( ^ ( ^ ( 4 ). ). ). ) 4 ) 4 ) _ ( \underbrace ( ^ ( ^ ( ^ ( ^ ( ^ ( 4 ). ). ). ) 4 ) 4 ) _ ( \underbrace ( ^ ( ^ ( ^ ( ^ ( ^ ( 4 ). ). ). ) 4 ) 4 ) _ ( 4 ) ) ) = \underbrace ( ^ ( ^ ( ^ ( ^ ( ^ ( 4 ). ). ). ) 4 ) 4 ) _ ( \underbrace ( ^ ( ^ ( ^ ( ^ ( ^ ( 4 ). ). ). ) 4 ) 4 ) _ ( ^ ( ^ ( ^ ( 4 ) 4 ) 4 ) 4 ) ) ) Generalizations Some numbers are so large that multiple arrows of Knuth 's up - arrow notation become too cumbersome ; then an n - arrow operator ↑ n ( displaystyle \uparrow ^ ( n ) ) is useful ( and also for descriptions with a variable number of arrows ), or equivalently, hyper operators. Some numbers are so large that even that notation is not sufficient. The Conway chained arrow notation can then be used : a chain of three elements is equivalent with the other notations, but a chain of four or more is even more powerful. a ↑ n b = a ( n + 2 ) b = a → b → n ( Knuth ) ( hyperoperation ) ( Conway ) ( displaystyle ( \begin ( matrix ) a \uparrow ^ ( n ) b& = &a ( n + 2 ) b& = &a \to b \to n ( mbox ( ( Knuth ) ) ) && ( mbox ( ( hyperoperation ) ) ) && ( mbox ( ( Conway ) ) ) end ( matrix ) ) ) It is generally suggested that Knuth 's arrow should be used for smaller magnitude numbers, and the chained arrow or hyper operators for larger ones. Definition The up - arrow notation is formally defined by a ↑ n b = ( a b, if n = 0 ; 1, if n ≥ 1 and b = 0 ; a ↑ n − 1 ( a ↑ n ( b − 1 ) ), otherwise ( displaystyle a \uparrow ^ ( n ) b = left ( ( \begin ( matrix ) ab, & ( mbox ( if ) ) n = 0 ; 1, & ( mbox ( if ) ) n geq 1 ( mbox ( and ) ) b = 0 ; a \uparrow ^ ( n - 1 ) ( a \uparrow ^ ( n ) ( b - 1 ) ), & ( mbox ( otherwise ) ) end ( matrix ) ) \right. ) for all integers a, b, n ( displaystyle a, b, n ) with b ≥ 0, n ≥ 0 ( displaystyle b geq 0, n geq 0 ). This definition takes multiplication as the basic operation ( a ↑ 0 b = a b ) ( displaystyle ( a \uparrow ^ ( 0 ) b = ab ) ), then yields exponentiation ( a ↑ 1 b = a ↑ b = a b ) ( displaystyle ( a \uparrow ^ ( 1 ) b = a \uparrow b = a ^ ( b ) ) ) as repeated multiplication, tetration ( a ↑ 2 b = a ↑ ↑ b ) ( displaystyle ( a \uparrow ^ ( 2 ) b = a \uparrow \uparrow b ) ) as repeated exponentiation, etc. ( This is equivalent to the hyperoperation sequence except it omits the two more - basic operations of successor and addition, inclusion of which requires additional starting values that somewhat complicate the definition. ) All up - arrow operators ( including normal exponentiation, a ↑ b ( displaystyle a \uparrow b ) ) are right associative, i.e. evaluated from right to left in an expression. a ↑ b ↑ c = a ↑ ( b ↑ c ) ( displaystyle a \uparrow b \uparrow c = a \uparrow ( b \uparrow c ) ) -- -- not ( a ↑ b ) ↑ c ( displaystyle ( a \uparrow b ) \uparrow c ). 3 ↑ ↑ 3 = 3 3 3 ( displaystyle 3 \uparrow \uparrow 3 = 3 ^ ( 3 ^ ( 3 ) ) ) is 3 ( 3 3 ) = 3 27 = 7625597484987 ( displaystyle 3 ^ ( ( 3 ^ ( 3 ) ) ) = 3 ^ ( 27 ) = 7625597484987 ) -- -- not ( 3 3 ) 3 = 27 3 = 19683. ( displaystyle left ( 3 ^ ( 3 ) \right ) ^ ( 3 ) = 27 ^ ( 3 ) = 19683. ) Note that due to right - associativity we have, for b ≥ 1, n ≥ 1 ( displaystyle b geq 1, n geq 1 ), a ↑ n b = a ↑ n − 1 a ↑ n − 1 ⋯ a ↑ n − 1 a ( with b a ' s ) = a ↑ n − 1 a ↑ n − 1 ⋯ a ↑ n − 1 a ↑ n − 1 1 ( with b a ' s ) = ( a ↑ n − 1 ) b 1 ( displaystyle ( \begin ( array ) ( lcl ) a \uparrow ^ ( n ) b& = &a \uparrow ^ ( n - 1 ) a \uparrow ^ ( n - 1 ) cdots a \uparrow ^ ( n - 1 ) a ( ( \text ( with ) ) b a ( \text ( 's ) ) ) & = &a \uparrow ^ ( n - 1 ) a \uparrow ^ ( n - 1 ) cdots a \uparrow ^ ( n - 1 ) a \uparrow ^ ( n - 1 ) 1 ( ( \text ( with ) ) b a ( \text ( 's ) ) ) & = & ( a \uparrow ^ ( n - 1 ) ) ^ ( b ) 1 end ( array ) ) ) where each a ( displaystyle a ) appears as a left operand of the arrow operator ( which is significant because the arrow operators are not commutative ), and we have written ( a ↑ m ) b ( displaystyle ( a \uparrow ^ ( m ) ) ^ ( b ) ) for the bth functional power of the function f ( x ) = a ↑ m x ( displaystyle f ( x ) = a \uparrow ^ ( m ) x ). Because ( a ↑ m ) 0 n = n ( displaystyle ( a \uparrow ^ ( m ) ) ^ ( 0 ) n = n ), the original definition can therefore be written more concisely as follows : a ↑ n b = ( a b, if n = 0 ; ( a ↑ n − 1 ) b 1 if n ≥ 1 ( displaystyle a \uparrow ^ ( n ) b = left ( ( \begin ( matrix ) ab, & ( mbox ( if ) ) n = 0 ; ( a \uparrow ^ ( n - 1 ) ) ^ ( b ) 1& ( mbox ( if ) ) n geq 1 end ( matrix ) ) \right. ) for all integers a, b, n ( displaystyle a, b, n ) with b ≥ 0, n ≥ 0 ( displaystyle b geq 0, n geq 0 ). Tables of values Computing 2 ↑ n Computing 2 ↑ m n ( displaystyle 2 \uparrow ^ ( m ) n ) can be restated in terms of an infinite table. We place the numbers 2 n ( displaystyle 2 ^ ( n ) ) in the top row, and fill the left column with values 2. To determine a number in the table, take the number immediately to the left, then look up the required number in the previous row, at the position given by the number just taken. Values of 2 ↑ m n ( displaystyle 2 \uparrow ^ ( m ) n ) = hyper ( 2, m + 2, n ) = 2 → n → m m \n 5 6 formula 8 16 32 64 2 n ( displaystyle 2 ^ ( n ) ) 16 65536 2 65 536 ≈ 2.0 × 10 19 728 ( displaystyle 2 ^ ( 65 , 536 ) approx 2.0 \times 10 ^ ( 19 , 728 ) ) 2 2 65 536 ≈ 10 6.0 × 10 19 727 ( displaystyle 2 ^ ( 2 ^ ( 65 , 536 ) ) approx 10 ^ ( 6.0 \times 10 ^ ( 19 , 727 ) ) ) 2 ↑ ↑ n ( displaystyle 2 \uparrow \uparrow n ) 65536 2 2... 2 ⏟ 65536 copies of 2 ( displaystyle ( \begin ( matrix ) \underbrace ( 2_ ( ) ^ ( 2 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 2 ) ) ) ) ) ) ) 65536 ( mbox ( copies of ) ) 2 end ( matrix ) ) ) 2 2... 2 ⏟ 2 2... 2 ⏟ 65536 copies of 2 ( displaystyle ( \begin ( matrix ) \underbrace ( 2_ ( ) ^ ( 2 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 2 ) ) ) ) ) ) ) \underbrace ( 2_ ( ) ^ ( 2 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 2 ) ) ) ) ) ) ) 65536 ( mbox ( copies of ) ) 2 end ( matrix ) ) ) 2 2... 2 ⏟ 2 2... 2 ⏟ 2 2... 2 ⏟ 65536 copies of 2 ( displaystyle ( \begin ( matrix ) \underbrace ( 2_ ( ) ^ ( 2 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 2 ) ) ) ) ) ) ) \underbrace ( 2_ ( ) ^ ( 2 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 2 ) ) ) ) ) ) ) \underbrace ( 2_ ( ) ^ ( 2 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 2 ) ) ) ) ) ) ) 65536 ( mbox ( copies of ) ) 2 end ( matrix ) ) ) 2 ↑ ↑ ↑ n ( displaystyle 2 \uparrow \uparrow \uparrow n ) 2 2... 2 ⏟ 65536 copies of 2 ( displaystyle ( \begin ( matrix ) \underbrace ( 2_ ( ) ^ ( 2 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 2 ) ) ) ) ) ) ) 65536 ( mbox ( copies of ) ) 2 end ( matrix ) ) ) 2 ↑ ↑ ↑ ↑ n ( displaystyle 2 \uparrow \uparrow \uparrow \uparrow n ) The table is the same as that of the Ackermann function, except for a shift in m ( displaystyle m ) and n ( displaystyle n ), and an addition of 3 to all values. Computing 3 ↑ n We place the numbers 3 n ( displaystyle 3 ^ ( n ) ) in the top row, and fill the left column with values 3. To determine a number in the table, take the number immediately to the left, then look up the required number in the previous row, at the position given by the number just taken. Values of 3 ↑ m n ( displaystyle 3 \uparrow ^ ( m ) n ) = hyper ( 3, m + 2, n ) = 3 → n → m m \n 5 formula 9 27 81 243 3 n ( displaystyle 3 ^ ( n ) ) 27 7,625,597,484,987 3 7,625,597,484,987 ( displaystyle 3 ^ ( 7 (, ) 625 (, ) 597 (, ) 484 (, ) 987 ) ) 3 3 7,625,597,484,987 ( displaystyle 3 ^ ( 3 ^ ( 7 (, ) 625 (, ) 597 (, ) 484 (, ) 987 ) ) ) 3 ↑ ↑ n ( displaystyle 3 \uparrow \uparrow n ) 7,625,597,484,987 3 3... 3 ⏟ 7,625,597,484,987 copies of 3 ( displaystyle ( \begin ( matrix ) \underbrace ( 3_ ( ) ^ ( 3 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 3 ) ) ) ) ) ) ) 7 (, ) 625 (, ) 597 (, ) 484 (, ) 987 ( mbox ( copies of ) ) 3 end ( matrix ) ) ) 3 ↑ ↑ ↑ n ( displaystyle 3 \uparrow \uparrow \uparrow n ) 3 3... 3 ⏟ 7,625,597,484,987 copies of 3 ( displaystyle ( \begin ( matrix ) \underbrace ( 3_ ( ) ^ ( 3 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 3 ) ) ) ) ) ) ) 7 (, ) 625 (, ) 597 (, ) 484 (, ) 987 ( mbox ( copies of ) ) 3 end ( matrix ) ) ) 3 ↑ ↑ ↑ ↑ n ( displaystyle 3 \uparrow \uparrow \uparrow \uparrow n ) Computing 4 ↑ n We place the numbers 4 n ( displaystyle 4 ^ ( n ) ) in the top row, and fill the left column with values 4. To determine a number in the table, take the number immediately to the left, then look up the required number in the previous row, at the position given by the number just taken. Values of 4 ↑ m n ( displaystyle 4 \uparrow ^ ( m ) n ) = hyper ( 4, m + 2, n ) = 4 → n → m m \n 5 formula 16 64 256 1024 4 n ( displaystyle 4 ^ ( n ) ) 256 1.3407807930 × 10 154 ( displaystyle 1.3407807930 \times 10 ^ ( 154 ) ) 4 1.3407807930 × 10 154 ( displaystyle 4 ^ ( 1.3407807930 \times 10 ^ ( 154 ) ) ) 4 4 1.3407807930 × 10 154 ( displaystyle 4 ^ ( 4 ^ ( 1.3407807930 \times 10 ^ ( 154 ) ) ) ) 4 ↑ ↑ n ( displaystyle 4 \uparrow \uparrow n ) 4 1.3407807930 × 10 154 ( displaystyle 4 ^ ( 1.3407807930 \times 10 ^ ( 154 ) ) ) 4 4... 4 ⏟ 4 1.3407807930 × 10 154 copies of 4 ( displaystyle ( \begin ( matrix ) \underbrace ( 4_ ( ) ^ ( 4 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 4 ) ) ) ) ) ) ) 4 ^ ( 1.3407807930 \times 10 ^ ( 154 ) ) ( mbox ( copies of ) ) 4 end ( matrix ) ) ) 4 ↑ ↑ ↑ n ( displaystyle 4 \uparrow \uparrow \uparrow n ) 4 4... 4 ⏟ 4 4... 4 ⏟ 4 1.3407807930 × 10 154 copies of 4 ( displaystyle ( \begin ( matrix ) \underbrace ( 4_ ( ) ^ ( 4 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 4 ) ) ) ) ) ) ) \underbrace ( 4_ ( ) ^ ( 4 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 4 ) ) ) ) ) ) ) 4 ^ ( 1.3407807930 \times 10 ^ ( 154 ) ) ( mbox ( copies of ) ) 4 end ( matrix ) ) ) 4 ↑ ↑ ↑ ↑ n ( displaystyle 4 \uparrow \uparrow \uparrow \uparrow n ) Computing 10 ↑ n We place the numbers 10 n ( displaystyle 10 ^ ( n ) ) in the top row, and fill the left column with values 10. To determine a number in the table, take the number immediately to the left, then look up the required number in the previous row, at the position given by the number just taken. Values of 10 ↑ m n ( displaystyle 10 \uparrow ^ ( m ) n ) = hyper ( 10, m + 2, n ) = 10 → n → m m \n 5 formula 10 100 1,000 10,000 100,000 10 n ( displaystyle 10 ^ ( n ) ) 10 10,000,000,000 10 10, 000, 000, 000 ( displaystyle 10 ^ ( 10,000,000,000 ) ) 10 10 10, 000, 000, 000 ( displaystyle 10 ^ ( 10 ^ ( 10,000,000,000 ) ) ) 10 10 10 10, 000, 000, 000 ( displaystyle 10 ^ ( 10 ^ ( 10 ^ ( 10,000,000,000 ) ) ) ) 10 ↑ ↑ n ( displaystyle 10 \uparrow \uparrow n ) 10 10 10... 10 ⏟ 10 copies of 10 ( displaystyle ( \begin ( matrix ) \underbrace ( 10_ ( ) ^ ( 10 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 10 ) ) ) ) ) ) ) 10 ( mbox ( copies of ) ) 10 end ( matrix ) ) ) 10 10... 10 ⏟ 10 10... 10 ⏟ 10 copies of 10 ( displaystyle ( \begin ( matrix ) \underbrace ( 10_ ( ) ^ ( 10 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 10 ) ) ) ) ) ) ) \underbrace ( 10_ ( ) ^ ( 10 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 10 ) ) ) ) ) ) ) 10 ( mbox ( copies of ) ) 10 end ( matrix ) ) ) 10 10... 10 ⏟ 10 10... 10 ⏟ 10 10... 10 ⏟ 10 copies of 10 ( displaystyle ( \begin ( matrix ) \underbrace ( 10_ ( ) ^ ( 10 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 10 ) ) ) ) ) ) ) \underbrace ( 10_ ( ) ^ ( 10 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 10 ) ) ) ) ) ) ) \underbrace ( 10_ ( ) ^ ( 10 ^ ( ( ) ^ (. , ^ (. , ^ (. , ^ ( 10 ) ) ) ) ) ) ) 10 ( mbox ( copies of ) ) 10 end ( matrix ) ) ) 10 ↑ ↑ ↑ n ( displaystyle 10 \uparrow \uparrow \uparrow n ) 10 10... 10 10 ⏟ 10 copies of 10 ( displaystyle ( \begin ( matrix ) \underbrace ( ^ ( ^ ( ^ ( ^ ( ^ ( 10 ). ). ). ) 10 ) 10 ) 10 ( mbox ( copies of ) ) 10 end ( matrix ) ) ) 10... 10 10 ⏟ 10... 10 10 ⏟ 10 copies of 10 ( displaystyle ( \begin ( matrix ) \underbrace ( ^ ( ^ ( ^ ( ^ ( ^ ( 10 ). ). ). ) 10 ) 10 ) \underbrace ( ^ ( ^ ( ^ ( ^ ( ^ ( 10 ). ). ). ) 10 ) 10 ) 10 ( mbox ( copies of ) ) 10 end ( matrix ) ) ) 10 ↑ ↑ ↑ ↑ n ( displaystyle 10 \uparrow \uparrow \uparrow \uparrow n ) Note that for 2 ≤ n ≤ 9 the numerical order of the numbers 10 ↑ m n ( displaystyle 10 \uparrow ^ ( m ) n ) is the lexicographical order with m as the most significant number, so for the numbers of these 8 columns the numerical order is simply line - by - line. The same applies for the numbers in the 97 columns with 3 ≤ n ≤ 99, and if we start from m = 1 even for 3 ≤ n ≤ 9,999,999,999. Numeration systems based on the hyperoperation sequence R.L. Goodstein, with a system of notation different from Knuth arrows, used the sequence of hyperoperators here denoted by ( +, ×, ↑, ↑ ↑,... ) ( displaystyle ( +, \times, \uparrow, \uparrow \uparrow, dots ) ) to create systems of numeration for the nonnegative integers. Letting square brackets ( ( 1 ), ( 2 ), ( 3 ), ( 4 ),... ) denote the respective hyperoperators ( +, ×, ↑, ↑ ↑,... ) ( displaystyle ( +, \times, \uparrow, \uparrow \uparrow, dots ) ), the so - called complete hereditary representation of integer n, at level k and base b, can be expressed as follows using only the first k hyperoperators and using as digits only 0, 1,..., b − 1, together with the base b itself : For 0 ≤ n ≤ b - 1, n is represented simply by the corresponding digit. For n > b - 1, the representation of n is found recursively, first representing n in the form b ( k ) x ( k - 1 ) x ( k - 2 )... ( 2 ) x ( 1 ) x where x,..., x are the largest integers satisfying ( in turn ) b ( k ) x ≤ n b ( k ) x ( k - 1 ) x ≤ n... b ( k ) x ( k - 1 ) x ( k - 2 )... ( 2 ) x ( 1 ) x ≤ n Any x exceeding b - 1 is then re-expressed in the same manner, and so on, repeating this procedure until the resulting form contains only the digits 0, 1,..., b - 1, together with the base b. The remainder of this section will use the superscripts to denote the hyperoperators. Unnecessary parentheses can be avoided by giving higher - level operators higher precedence in the order of evaluation ; thus, level - 1 representations have the form b ( 1 ) X, with X also of this form ; level - 2 representations have the form b ( 2 ) X ( 1 ) Y, with X, Y also of this form ; level - 3 representations have the form b ( 3 ) X ( 2 ) Y ( 1 ) Z, with X, Y, Z also of this form ; level - 4 representations have the form b ( 4 ) X ( 3 ) Y ( 2 ) Z ( 1 ) W, with X, Y, Z, W also of this form ; and so on. Note that in this type of base - b hereditary representation, the base itself appears in the expressions, as well as `` digits '' from the set ( 0, 1,..., b - 1 ). This compares to ordinary base - 2 representation when the latter is written out in terms of the base b ; e.g., in ordinary base - 2 notation, 6 = ( 110 ) = 2 ( 3 ) 2 ( 2 ) 1 ( 1 ) 2 ( 3 ) 1 ( 2 ) 1 ( 1 ) 2 ( 3 ) 0 ( 2 ) 0, whereas the level - 3 base - 2 hereditary representation is 6 = 2 ( 3 ) ( 2 ( 3 ) 1 ( 2 ) 1 ( 1 ) 0 ) ( 2 ) 1 ( 1 ) ( 2 ( 3 ) 1 ( 2 ) 1 ( 1 ) 0 ). The hereditary representations can be abbreviated by omitting any instances of ( 1 ) 0, ( 2 ) 1, ( 3 ) 1, ( 4 ) 1, etc. ; for example, the above level - 3 base - 2 representation of 6 abbreviates to 2 ( 3 ) 2 ( 1 ) 2. Examples : The unique base - 2 representations of the number 266, at levels 1, 2, 3, 4, and 5 are as follows : Level 1 : 266 = 2 ( 1 ) 2 ( 1 ) 2 ( 1 )... ( 1 ) 2 ( with 133 2s ) Level 2 : 266 = 2 ( 2 ) ( 2 ( 2 ) ( 2 ( 2 ) ( 2 ( 2 ) 2 ( 2 ) 2 ( 2 ) 2 ( 2 ) 2 ( 1 ) 1 ) ) ( 1 ) 1 ) Level 3 : 266 = 2 ( 3 ) 2 ( 3 ) ( 2 ( 1 ) 1 ) ( 1 ) 2 ( 3 ) ( 2 ( 1 ) 1 ) ( 1 ) 2 Level 4 : 266 = 2 ( 4 ) ( 2 ( 1 ) 1 ) ( 3 ) 2 ( 1 ) 2 ( 4 ) 2 ( 2 ) 2 ( 1 ) 2 Level 5 : 266 = 2 ( 5 ) 2 ( 4 ) 2 ( 1 ) 2 ( 5 ) 2 ( 2 ) 2 ( 1 ) 2 See also Primitive recursion Hyperoperation Busy beaver Cutler 's bar notation Tetration Pentation Conway 's chained arrow notation Ackermann function Graham 's number Steinhaus -- Moser notation References Jump up ^ Knuth, Donald E. ( 1976 ). `` Mathematics and Computer Science : Coping with Finiteness ''. Science. 194 ( 4271 ) : 1235 -- 1242. doi : 10.1126 / science. 194.4271. 1235. PMID 17797067. Jump up ^ Goodstein, R.L. ( 1947 ). `` Transfinite ordinals in recursive number theory ''. Journal of Symbolic Logic. 12 ( 4 ) : 123 -- 129. doi : 10.2307 / 2266486. JSTOR 2266486. External links Weisstein, Eric W. `` Arrow Notation ''. MathWorld. Robert Munafo, Large Numbers Large numbers Examples in numerical order Thousand Ten thousand Hundred thousand Million Ten million Hundred million Billion Trillion Quadrillion Quintillion Sextillion Septillion Googol Googolplex Skewes 's number Googolduplex Moser 's number Graham 's number TREE ( 3 ) SSCG ( 3 ) Rayo 's number Transfinite numbers Expression methods Notations Knuth 's up - arrow notation Conway chained arrow notation Steinhaus -- Moser notation Operators Hyperoperation Tetration Pentation Ackermann function Bowers 's operators Related articles Infinitesimal Number systems Number names Orders of magnitude List of notable numbers Indefinite and fictitious numbers Extended real number line Power of two Power of 10 Long and short scales Titanic prime Gigantic prime Megaprime Largest known prime number Names History Donald Knuth Publications The Art of Computer Programming `` The Complexity of Songs '' Computers and Typesetting Concrete Mathematics Surreal Numbers Things a Computer Scientist Rarely Talks About Selected papers series Software TeX METAFONT MIXAL ( MIX MMIX GNU MDK ) Fonts AMS Euler Computer Modern Concrete Roman Literate programming WEB CWEB Algorithms Knuth 's Algorithm X Knuth -- Bendix completion algorithm Knuth -- Morris -- Pratt algorithm Knuth shuffle Robinson -- Schensted -- Knuth correspondence Trabb Pardo -- Knuth algorithm Generalization of Dijkstra 's algorithm Knuth 's Simpath algorithm Other Dancing Links Knuth reward check Knuth Prize Man or boy test Quater - imaginary base - yllion Potrzebie system of weights and measures Retrieved from `` https://en.wikipedia.org/w/index.php?title=Knuth%27s_up-arrow_notation&oldid=817880935 '' Categories : Mathematical notation Large numbers Donald Knuth 1976 introductions Hidden categories : Articles with specifically marked weasel - worded phrases from March 2015 Talk Contents About Wikipedia Čeština Deutsch Español Esperanto Français 한국어 Bahasa Indonesia Italiano Bahasa Melayu Nederlands 日本 語 Norsk Polski Português Русский Simple English Slovenščina Српски / srpski Suomi Svenska ไทย Türkçe Українська 中文 Edit links This page was last edited on 31 December 2017, at 03 : 17. Text is available under the Creative Commons Attribution - ShareAlike License ; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia ® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization. About Wikipedia

Question: what does an upward arrow mean in math
Answer: single arrow means exponentiation (iterated multiplication), more than one arrow means iterating the operation associated with one less arrow