Knuth's up-arrow notation

Knuth's up-arrow notation

In mathematics, Knuth's up-arrow notation is a method of notation of very large integers introduced by Donald Knuth in 1976. It is closely related to the Ackermann function. The idea is based on iterated exponentiation in much the same way that exponentiation can be similar to iterated multiplication, and multiplication can be similar to iterated addition.

Introduction

Multiplication by a natural number can be defined as iterated addition:

: egin{matrix} a imes b & = & underbrace{a+a+dots+a} \ & & bmbox{ copies of }a end{matrix} .

For example,

: egin{matrix} 3 imes 2 & = & underbrace{3+3} & = & 6\ & & 2mbox{ copies of }3 end{matrix} .

Exponentiation for a natural power b can be defined as iterated multiplication:

: egin{matrix} auparrow b= a^b = & underbrace{a imes a imesdots imes a}\ & bmbox{ copies of }a end{matrix} .

For example,

: egin{matrix} 3uparrow 2= 3^2 = & underbrace{3 imes 3} & = & 9\ & 2mbox{ copies of }3 end{matrix} .

This inspired Knuth to define a “double arrow” operator for iterated exponentiation or tetration:

: egin{matrix} auparrowuparrow b & = { ^{b}a} = & underbrace{a^{a^}^{.,^{.,^{.,^a & = & underbrace{auparrow auparrowdotsuparrow a} \ & & bmbox{ copies of }a & & bmbox{ copies of }a end{matrix}

For example,

: egin{matrix} 3uparrowuparrow 2 & = { ^{2}3} = & underbrace{3^3} & = & underbrace{3uparrow 3} & = & 27\ & & 2mbox{ copies of }3 & & 2mbox{ copies of }3 end{matrix} .

Here and below evaluation is to take place from right to left (as such the operation is right-associative):

According to this definition,:3uparrowuparrow2=3^3=27 :3uparrowuparrow3=3^{3^3}=3^{27}=7625597484987 :3uparrowuparrow4=3^{3^{3^3=3^{7625597484987} (just writing out this number in expanded form would require about 1.37 terabytes of storage space, i. e. 7,625,597,484,987 imes frac{log 3}{log 2} bits):3uparrowuparrow5=3^{3^{3^{3^3} = 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 application of the “double arrow” operator (also known as pentation):

: egin{matrix} auparrowuparrowuparrow b= & underbrace{a_{}uparrowuparrow auparrowuparrowdotsuparrowuparrow a}\ & bmbox{ copies of }a end{matrix}

followed by a 'quad arrow' operator:

: egin{matrix} auparrowuparrowuparrowuparrow b= & underbrace{a_{}uparrowuparrowuparrow auparrowuparrowuparrowdotsuparrowuparrowuparrow a}\ & bmbox{ copies of }a end{matrix}

and so on. The general rule is that an n-arrow operator expands into a series of (n - 1)-arrow operators. Symbolically,

: egin{matrix} a underbrace{uparrow_{}uparrow!!dots!!uparrow} b= a underbrace{uparrow!!dots!!uparrow} a underbrace{uparrow_{}!!dots!!uparrow} a dots a underbrace{uparrow_{}!!dots!!uparrow} a \ quad ,nqquad underbrace{quad n_{}!-!!1quad ,n!-!!1qquadquad ,n!-!!1 } \ qquadqquadquad bmbox{ copies of }a end{matrix}

Examples:

3uparrowuparrowuparrow2 = 3uparrowuparrow3 = 3^{3^3} = 3^{27}=7,625,597,484,987

egin{matrix} 3uparrowuparrowuparrow3 = 3uparrowuparrow3uparrowuparrow3 = 3uparrowuparrow(3uparrow3uparrow3) = & underbrace{3_{}uparrow 3uparrowdotsuparrow 3} \ & 3uparrow3uparrow3mbox{ copies of }3 end{matrix} egin{matrix} = & underbrace{3_{}uparrow 3uparrowdotsuparrow 3} \ & mbox{7,625,597,484,987 copies of 3} end{matrix}

Notation

In expressions such as a^b, the notation for exponentiation is usually to write the exponent b as a superscript to the base number a. But many environments — such as programming languages and plain-text e-mail — do not support such two-dimensional layout. People have adopted the linear notation a uparrow b for such environments; the up-arrow suggests 'raising to the power of'. If the character set doesn't contain an up arrow, the caret ^ is used instead.

The superscript notation a^b doesn't lend itself well for generalization, which explains why Knuth chose to work from the inline notation a uparrow b instead.

In the context of the C programming language, the ^ character is the XOR operator. ** is a common alternative to uparrow for discussion in this context, using the same principle of two symbols meaning repetition of that operator. It is possible that *** could be equivalent to uparrowuparrow, but this usage is uncommon.

Writing out up-arrow notation in terms of powers

Attempting to write a uparrow uparrow b using the familiar superscript notation gives a power tower. With "b" too large to write "b" numbers "a", this requires using dots and a brace with the number "b" next to it, indicating the height of the power tower. a uparrow uparrow uparrow b requires a row of such power towers, separated by braces: there are "b" power towers, including the last with height 1, hence simply the number "a". If "b" is too large to write all these power towers, we use dots to indicate a row of them, and for the number of power towers a "cross-brace" (the number of braces is one less). a uparrow uparrow uparrow uparrow b requires a row of such rows of power towers; there are "b" rows of power towers, including the last, which consists of only one "power tower" of height 1, so is simply the number "a". If "b" is too large to write all these rows, we use a "cross-cross-brace" with this number "b" next to it (the number of cross-braces is one less). And so on.

Since the power notation is in direction "/", the braces are too. A row of them could be written in perpendicular direction "", and the cross-brace too. A row of cross-braces could then extend in the direction "/", with a cross-cross-brace too, etc.

Example:

*For 4uparrowuparrowuparrow6 there are six power towers, including the last with height 1, hence simply the number 4; writing out the fifth power tower we have only five:

:egin{matrix} underbrace{egin{matrix} underbrace{4^{4^{4^{.^{.^{.{4} \ underbrace{4^{4^{4^{.^{.^{.{4} \ underbrace{4^{4^{4^{.^{.^{.{4} \ {4^{4^{4^{.^{.^{.{4} end{matrix \ {4^{4^{4^{4 end{matrix}

Using the left-superscript notation for tetration we have one "level of braces" less: a uparrow uparrow uparrow b requires a "tetration tower" in the direction "", and a brace with the number "b" next to it, indicating the height of the tetration tower. a uparrow uparrow uparrow uparrow b requires a row of such tetration towers, separated by braces: there are "b" tetration towers, including the last with height 1, hence simply the number "a". If "b" is too large to write all these tetration towers, we use a "cross-brace" with this number "b" next to it. And so on.

Examples:

*The previous example becomes

:^{^{^{^{^{4}4}4}4}4}4

*For the fourth Ackermann number 4 uparrow uparrow uparrow uparrow 4 there are four tetration towers, including the last with height 1, hence simply the number 4; writing out the third tetration tower we have only three::egin{matrix} underbrace{egin{matrix} underbrace{^{^{^{^{^{^{^{4}.}.}.}4}4}4}4} \ ^{^{^{^{^{^{^{4}.}.}.}4}4}4}4 end{matrix \ ^{^{^{^4}4}4}4 end{matrix}

Generalizations

Some numbers are so large that multiple arrows of Knuth's up-arrow notation become too cumbersome; then an "n"-arrow operator 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. Graham's number is an example. 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.

: egin{matrix} auparrow^n b & = & mbox{hyper}(a,n+2,b) & = & a o b o n \ mbox{(Knuth)} & & & & mbox{(Conway)} end{matrix}

It is generally suggested that Knuth's arrow should be used for relatively smaller magnitude numbers, and the chained arrow or hyper operators for larger ones.

Definition

The up-arrow notation is formally defined by

: auparrow^n b= left{ egin{matrix} a^b, & mbox{if }n=1; \ 1, & mbox{if }b=0; \ auparrow^{n-1}(auparrow^n(b-1)), & mbox{otherwise} end{matrix} ight. for all integers a, b, n with b ge 0, n ge 1.

All up-arrow operators (including normal exponentiation, a uparrow b) are right associative, i.e. evaluation is to take place from right to left in an expression that contains two or more such operators. For example, a uparrow b uparrow c = a uparrow (b uparrow c), not (a uparrow b) uparrow c; for example
3uparrowuparrow 3=3^{3^3} is 3^{(3^3)}=3^{27}=7625597484987 not left(3^3 ight)^3=27^3=19683.

There is good reason for the choice of this right-to-left order of evaluation. If we used left-to-right evaluation, then a uparrowuparrow b would equala uparrow (a uparrow (b - 1)), so that uparrowuparrow would not be an essentially new operation. Right associativity is also natural because we can rewrite the iterated arrow expression auparrow^ncdotsuparrow^na that appearsin the expansion of a uparrow^{n + 1}b asauparrow^ncdotsuparrow^nauparrow^n1, so that all the as appearas left operands of arrow operators. This is significant since the arrow operators are not commutative.

Writing (auparrow ^m)^b for the "b"th functional power of the function f(n)=auparrow ^m n we have auparrow ^n b = (auparrow ^{n-1})^b 1.

The definition could be extrapolated one step, starting with auparrow^n b= ab if "n" = 0, because exponentiation is repeated multiplication starting with 1. Extrapolating one step more, writing multiplication as repeated addition, is not as straightforward because multiplication is repeated addition starting with 0 instead of 1. "Extrapolating" again one step more, writing addition of "n" as repeated addition of 1, requires starting with the number "a". Compare the ml|Hyper operator|Derivation of the notation|definition of the hyper operator, where the starting values for addition and multiplication are also separately specified.

Tables of values

Computing 2uparrow^m n can be restated in terms of an infinite table. We place the numbers 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.

Note that for 2 ≤ "n" ≤ 9 the numerical order of the numbers 10uparrow^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.

ee also

*Hyper operator
*Busy Beaver
*Cutler's bar notation
*Ultra exponential function
*Tetration

References

* Knuth, Donald E., "Coping With Finiteness", "Science" vol. 194 n. 4271 (Dec 1976), pp. 1235-1242.
*
* Robert Munafo, " [http://www.mrob.com/pub/math/largenum.html Large Numbers] "


Wikimedia Foundation. 2010.

Игры ⚽ Нужно сделать НИР?

Look at other dictionaries:

  • Arrow notation — may refer to: *Conway chained arrow notation *Knuth s up arrow notation *Infinitary combinatorics …   Wikipedia

  • Conway chained arrow notation — Conway chained arrow notation, created by mathematician John Horton Conway, is a means of expressing certain extremely large numbers. It is simply a finite sequence of positive integers separated by rightward arrows, e.g.… …   Wikipedia

  • Knuth — is a name of Scandinavian origin. Knuth may refer to:As a surname:*Donald Knuth, a respected computer scientist. *Frederik Marcus Knuth, Danish taxonomist *Kate Knuth, US politician. *Shay Knuth, Playboy s Playmate of the Month for September 1969 …   Wikipedia

  • Notation — The term notation can refer to: Contents 1 Written communication 1.1 Biology and Medicine 1.2 Chemistry 1.3 Dance and movement …   Wikipedia

  • Arrow (symbol) — This article is about the symbol. For other uses, see Arrow (disambiguation). ⇪ redirects here. For the symbol on a keyboard, see Caps lock. ⇧ redirects here. For the symbol on a keyboard, see Shift key. ⇈ redirects here. For the mathematical… …   Wikipedia

  • Steinhaus–Moser notation — In mathematics, Steinhaus–Moser notation is a means of expressing certain extremely large numbers. It is an extension of Steinhaus’s polygon notation. Contents 1 Definitions 2 Special values 3 Mega …   Wikipedia

  • Donald Knuth — Donald Ervin Knuth Donald Knuth at a reception for the Open Content Alliance, October 25, 2005 Born …   Wikipedia

  • Cutler's bar notation — In mathematics, Cutler s bar notation is a notation system for large numbers, introduced by Mark Cutler in 2004. The idea is based on iterated exponentiation in much the same way that exponentiation is iterated multiplication. Contents 1… …   Wikipedia

  • Steinhaus-Moser-Notation — Die Steinhaus Moser Notation ist eine Darstellungsweise für sehr große Zahlen. Sie wurde 1950[1] von dem polnischen Mathematiker Hugo Steinhaus als Kreisnotation vorgeschlagen und später durch den Österreicher Leo Moser auf die Polygonnotation… …   Deutsch Wikipedia

  • Large numbers — This article is about large numbers in the sense of numbers that are significantly larger than those ordinarily used in everyday life, for instance in simple counting or in monetary transactions. The term typically refers to large positive… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”