A standardized way of writing very large numbers allows them to be easily sorted in increasing order, and one can get a good idea of how much larger a number is than another one. To compare numbers in scientific notation, say 5×104 and 2×105, compare the exponents first, in this case 5 > 4, so 2×105 > 5×104. If the exponents are equal, the mantissa (or coefficient) should be compared, thus 5×104 > 2×104 because 5 > 2. Tetration with base 10 gives the sequence 10 \uparrow \uparrow n=10 \to n \to 2=(10\uparrow)^n 1, the power towers of numbers 10, where (10\uparrow)^n denotes a
functional power of the function f(n)=10^n (the function also expressed by the suffix "-plex" as in googolplex, see
the googol family). These are very round numbers, each representing an
order of magnitude in a generalized sense. A crude way of specifying how large a number is, is specifying between which two numbers in this sequence it is. More precisely, numbers in between can be expressed in the form (10\uparrow)^n a, i.e., with a power tower of 10s, and a number at the top, possibly in scientific notation, e.g. 10^{10^{10^{10^{10^{4.829}}}}} = (10\uparrow)^5 4.829, a number between 10\uparrow\uparrow 5 and 10\uparrow\uparrow 6 (note that 10 \uparrow\uparrow n if 1 ). (See also
extension of tetration to real heights.) Thus googolplex is 10^{10^{100}} = (10\uparrow)^2 100 = (10\uparrow)^3 2. Another example: :2 \uparrow\uparrow\uparrow 4 = \begin{matrix} \underbrace{2_{}^{2^{{}^{.\,^{.\,^{.\,^2}}}}}}\\ \qquad\quad\ \ \ 65,536\mbox{ copies of }2 \end{matrix} \approx (10\uparrow)^{65,531}(6 \times 10^{19,728}) \approx (10\uparrow)^{65,533} 4.3 (between 10\uparrow\uparrow 65,533 and 10\uparrow\uparrow 65,534) Thus the "order of magnitude" of a number (on a larger scale than usually meant), can be characterized by the number of times (
n) one has to take the log_{10} to get a number between 1 and 10. Thus, the number is between 10\uparrow\uparrow n and 10\uparrow\uparrow (n+1). As explained, a more precise description of a number also specifies the value of this number between 1 and 10, or the previous number (taking the logarithm one time less) between 10 and 1010, or the next, between 0 and 1. Note that :10^{(10\uparrow)^{n}x}=(10\uparrow)^{n}10^x I.e., if a number
x is too large for a representation (10\uparrow)^{n}x the power tower can be made one higher, replacing
x by log10
x, or find
x from the lower-tower representation of the log10 of the whole number. If the power tower would contain one or more numbers different from 10, the two approaches would lead to different results, corresponding to the fact that extending the power tower with a 10 at the bottom is then not the same as extending it with a 10 at the top (but, of course, similar remarks apply if the whole power tower consists of copies of the same number, different from 10). If the height of the tower is large, the various representations for large numbers can be applied to the height itself. If the height is given only approximately, giving a value at the top does not make sense, so the double-arrow notation (e.g. 10\uparrow\uparrow(7.21\times 10^8)) can be used. If the value after the double arrow is a very large number itself, the above can recursively be applied to that value. Examples: :10\uparrow\uparrow 10^{\,\!10^{10^{3.81\times 10^{17}}}} (between 10\uparrow\uparrow\uparrow 2 and 10\uparrow\uparrow\uparrow 3) :10\uparrow\uparrow 10\uparrow\uparrow (10\uparrow)^{497}(9.73\times 10^{32})=(10\uparrow\uparrow)^{2} (10\uparrow)^{497}(9.73\times 10^{32}) (between 10\uparrow\uparrow\uparrow 4 and 10\uparrow\uparrow\uparrow 5) Similarly to the above, if the exponent of (10\uparrow) is not exactly given then giving a value at the right does not make sense, and instead of using the power notation of (10\uparrow), it is possible to add 1 to the exponent of (10\uparrow\uparrow), to obtain e.g. (10\uparrow\uparrow)^{3} (2.8\times 10^{12}). If the exponent of (10\uparrow \uparrow) is large, the various representations for large numbers can be applied to this exponent itself. If this exponent is not exactly given then, again, giving a value at the right does not make sense, and instead of using the power notation of (10\uparrow \uparrow) it is possible use the triple arrow operator, e.g. 10\uparrow\uparrow\uparrow(7.3\times 10^{6}). If the right-hand argument of the triple arrow operator is large the above applies to it, obtaining e.g. 10\uparrow\uparrow\uparrow(10\uparrow\uparrow)^{2} (10\uparrow)^{497}(9.73\times 10^{32}) (between 10\uparrow\uparrow\uparrow 10\uparrow\uparrow\uparrow 4 and 10\uparrow\uparrow\uparrow 10\uparrow\uparrow\uparrow 5). This can be done recursively, so it is possible to have a power of the triple arrow operator. Then it is possible to proceed with operators with higher numbers of arrows, written \uparrow^n. Compare this notation with the
hyper operator and the
Conway chained arrow notation: :a\uparrow^n b = (
a →
b →
n ) = hyper(
a,
n + 2,
b) An advantage of the first is that when considered as function of
b, there is a natural notation for powers of this function (just like when writing out the
n arrows): (a\uparrow^n)^k b. For example: :(10\uparrow^2)^3 b = ( 10 → ( 10 → ( 10 →
b → 2 ) → 2 ) → 2 ) and only in special cases the long nested chain notation is reduced; for
b = 1 obtains: :10\uparrow^3 3 = (10\uparrow^2)^3 1 = ( 10 → 3 → 3 ) Since the
b can also be very large, in general it can be written instead a number with a sequence of powers (10 \uparrow^n)^{k_n} with decreasing values of
n (with exactly given integer exponents {k_n}) with at the end a number in ordinary scientific notation. Whenever a {k_n} is too large to be given exactly, the value of {k_{n+1}} is increased by 1 and everything to the right of ({n+1})^{k_{n+1}} is rewritten. For describing numbers approximately, deviations from the decreasing order of values of
n are not needed. For example, 10 \uparrow (10 \uparrow \uparrow)^5 a=(10 \uparrow \uparrow)^6 a, and 10 \uparrow (10 \uparrow \uparrow \uparrow 3)=10 \uparrow \uparrow (10 \uparrow \uparrow 10 + 1)\approx 10 \uparrow \uparrow \uparrow 3. Thus is obtained the somewhat counterintuitive result that a number
x can be so large that, in a way,
x and 10x are "almost equal" (for arithmetic of large numbers see also below). If the superscript of the upward arrow is large, the various representations for large numbers can be applied to this superscript itself. If this superscript is not exactly given then there is no point in raising the operator to a particular power or to adjust the value on which it act, instead it is possible to simply use a standard value at the right, say 10, and the expression reduces to 10 \uparrow^n 10=(10 \to 10 \to n) with an approximate
n. For such numbers the advantage of using the upward arrow notation no longer applies, so the chain notation can be used instead. The above can be applied recursively for this
n, so the notation \uparrow^n is obtained in the superscript of the first arrow, etc., or a nested chain notation, e.g.: :(10 → 10 → (10 → 10 → 3 \times 10^5) ) = 10 \uparrow ^{10 \uparrow ^{3 \times 10^5} 10} 10 If the number of levels gets too large to be convenient, a notation is used where this number of levels is written down as a number (like using the superscript of the arrow instead of writing many arrows). Introducing a function f(n)=10 \uparrow^{n} 10 = (10 → 10 →
n), these levels become functional powers of
f, allowing us to write a number in the form f^m(n) where
m is given exactly and n is an integer which may or may not be given exactly (for example: f^2(3 \times 10^5)). If
n is large, any of the above can be used for expressing it. The "roundest" of these numbers are those of the form
fm(1) = (10→10→
m→2). For example, (10 \to 10 \to 3\to 2) = 10 \uparrow ^{10 \uparrow ^{10^{10}} 10} 10 Compare the definition of Graham's number: it uses numbers 3 instead of 10 and has 64 arrow levels and the number 4 at the top; thus G , but also G . If
m in f^m(n) is too large to give exactly, it is possible to use a fixed
n, e.g.
n = 1, and apply the above recursively to
m, i.e., the number of levels of upward arrows is itself represented in the superscripted upward-arrow notation, etc. Using the functional power notation of
f this gives multiple levels of
f. Introducing a function g(n)=f^{n}(1) these levels become functional powers of
g, allowing us to write a number in the form g^m(n) where
m is given exactly and n is an integer which may or may not be given exactly. For example, if (10→10→
m→3) =
gm(1). If
n is large any of the above can be used for expressing it. Similarly a function
h, etc. can be introduced. If many such functions are required, they can be numbered instead of using a new letter every time, e.g. as a subscript, such that there are numbers of the form f_k^m(n) where
k and
m are given exactly and n is an integer which may or may not be given exactly. Using
k=1 for the
f above,
k=2 for
g, etc., obtains (10→10→
n→
k) = f_k(n)=f_{k-1}^n(1). If
n is large any of the above can be used to express it. Thus is obtained a nesting of forms {f_k}^{m_k} where going inward the
k decreases, and with as inner argument a sequence of powers (10 \uparrow^n)^{p_n} with decreasing values of
n (where all these numbers are exactly given integers) with at the end a number in ordinary scientific notation. When
k is too large to be given exactly, the number concerned can be expressed as {f_n}(10)=(10→10→10→
n) with an approximate
n. Note that the process of going from the sequence 10^{n}=(10→
n) to the sequence 10 \uparrow^n 10=(10→10→
n) is very similar to going from the latter to the sequence {f_n}(10)=(10→10→10→
n): it is the general process of adding an element 10 to the chain in the chain notation; this process can be repeated again (see also the previous section). Numbering the subsequent versions of this function a number can be described using functions {f_{qk}}^{m_{qk}}, nested in
lexicographical order with
q the most significant number, but with decreasing order for
q and for
k; as inner argument yields a sequence of powers (10 \uparrow^n)^{p_n} with decreasing values of
n (where all these numbers are exactly given integers) with at the end a number in ordinary scientific notation. For a number too large to write down in the Conway chained arrow notation it size can be described by the length of that chain, for example only using elements 10 in the chain; in other words, one could specify its position in the sequence 10, 10→10, 10→10→10, .. If even the position in the sequence is a large number same techniques can be applied again.
Examples Numbers expressible in decimal notation: • 22 = 4 • 222 = 2 ↑↑ 3 = 16 • 33 = 27 • 44 = 256 • 55 = 3,125 • 66 = 46,656 • 2^{2^{2^{2}}} = 2 ↑↑ 4 = 2↑↑↑3 = 65,536 • 77 = 823,543 • 106 = 1,000,000 = 1 million • 88 = 16,777,216 • 99 = 387,420,489 • 109 = 1,000,000,000 = 1 billion • 1010 = 10,000,000,000 • 1012 = 1,000,000,000,000 = 1 trillion • 333 = 3 ↑↑ 3 = 7,625,597,484,987 ≈ 7.63 × 1012 • 1015 = 1,000,000,000,000,000 = 1 million billion = 1 quadrillion • 1018 = 1,000,000,000,000,000,000 = 1 billion billion = 1 quintilion Numbers expressible in scientific notation: • Approximate
number of atoms in the observable universe = 1080 = 100,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 • googol = 10100 = 10,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000,000 • 444 = 4 ↑↑ 3 = 2512 ≈ 1.34 × 10154 ≈ (10 ↑)2 2.2 • Approximate number of
Planck volumes composing the volume of the observable
universe = 8.5 × 10184 • 555 = 5 ↑↑ 3 = 53125 ≈ 1.91 × 102184 ≈ (10 ↑)2 3.3 • 2^{2^{2^{2^2}}} = 2 \uparrow \uparrow 5 = 2^{65,536} \approx 2.0 \times 10^{19,728} \approx (10 \uparrow)^2 4.3 • 666 = 6 ↑↑ 3 ≈ 2.66 × 1036,305 ≈ (10 ↑)2 4.6 • 777 = 7 ↑↑ 3 ≈ 3.76 × 10695,974 ≈ (10 ↑)2 5.8 • 888 = 8 ↑↑ 3 ≈ 6.01 × 1015,151,335 ≈ (10 ↑)2 7.2 • M_{136,279,841} \approx 8.82\times 10^{41,024,319} \approx 10^{10^{7.6130}} \approx (10 \uparrow)^2 \ 7.6130, the 52nd and the largest known
Mersenne prime. • ( 10 → 10 → 65 → 2 ) • ( 10 → 10 → 10 → 3 ) • ( 10 → 10 → 10 → 4 ) • ( 10 → 10 → 10 → 10 ) • ( 10 → 10 → 10 → 10 → 10 ) • ( 10 → 10 → 10 → 10 → 10 → 10 ) • ( 10 → 10 → 10 → 10 → 10 → 10 → 10 → ... → 10 → 10 → 10 → 10 → 10 → 10 → 10 → 10 ) where there are ( 10 → 10 → 10 ) "10"s
Other notations Some notations for extremely large numbers: •
Knuth's up-arrow notation,
hyperoperators,
Ackermann function, including tetration •
Conway chained arrow notation •
Steinhaus-Moser notation; apart from the method of construction of large numbers, this also involves a graphical notation with
polygons. Alternative notations, like a more conventional function notation, can also be used with the same functions. •
Fast-growing hierarchy These notations are essentially functions of integer variables, which increase very rapidly with those integers. Ever-faster-increasing functions can easily be constructed recursively by applying these functions with large integers as argument. A function with a vertical asymptote is not helpful in defining a very large number, although the function increases very rapidly: one has to define an argument very close to the asymptote, i.e. use a very small number, and constructing that is equivalent to constructing a very large number, e.g. the reciprocal. == Comparison of base values ==