Large Numbers
First page . . . Forward to page 3 . . . Last page (page 7)
The Knuth yllion Notation
Donald Knuth created a system that extends much further than the standard Latinbased system. In the essay Supernatural Numbers[37] he wrote:
When we stop to examine our conventional numbers, it is immediately apparent that these names are "Menschenwerk"; they could have been designed much better. For example, it would be better to forget about thousands entirely, and to make a myriad (10^{4}) the next unit after hundreds.
So in this system the word "thousand" is not used, and instead everything up to 9999 is named using the traditional names for numbers up to 99 plus "hundred", and no comma is used. For example:
127 = One hundred twentyseven
1000 = Ten hundred
1356 = Thirteen hundred fiftysix
3000 = Thirty hundred
4192 = Fortyone hundred ninetytwo
10^{4} is called "myriad", a name that originally comes from ancient Egypt. It is written 1,0000 — note that the comma is added to separate the lowest four digits, not three. Numbers up to 9999,9999 are named like so:
1,2345 = One myriad twentythree hundred fortyfive
10,0000 = Ten myriad
26,0044 = Twentysix myriad fortyfour
100,0000 = One hundred myriad
1000,0000 = Ten hundred myriad
1400,2054 = Fourteen hundred myriad twenty hundred fiftyfour
4309,8127 = Fortythree hundred nine myriad eightyone hundred twentyseven
10^{8} is called "myllion" (pronounced "mileyun") and is written 1;0000,0000. Notice a new punctuation mark is used to represent "myllion". Numbers up to 9999,9999;9999,9999 are named as in these examples:
9;0000,0000 = Nine myllion
100;0001,0000 = One hundred myllion one myriad
2000;0000,1234 = Twenty hundred myllion twelve hundred thirty four
4,0006;5020,0100 = Four myriad six myllion fifty hundred twenty myriad one hundred
Then 10^{16} is called "byllion", and a new punctuation mark is used. Knuth points out the advantage of avoiding the long scale vs. short scale confusion. Notice each punctuation mark can be read exactly when it appears so it's easy to read off these numbers in words:
1844:6744,0737;0955,1616 = Eighteen hundred fortyfour byllion sixtyseven hundred fortyfour myriad seven hundred thirtyseven myllion nine hundred fiftyfive myriad sixteen hundred sixteen
Each new number name is the square of the previous one — therefore, each new name allows us to name numbers with twice as many digits. This gives us a lot more mileage out of each name. Knuth continues borrowing the traditional names changing "illion" to "yllion" on each one. "vigintyllion" ends up being 10^{4194304}, a bit beyond the upper limit of class2 numbers.
In the same article [37], Knuth reports that Hsu Yo (living near the end of the Han dynasty) used the names wan=10^{4}, i=10^{8}, chao=10^{16} and ching=10^{32} as part of a nomenclature system for large numbers. The names descended into the presentday Chinese wàn, yì, zhào and jing respectively. Usage of the names zhào and jing for 10^{16} and 10^{32} respectively is the "higher degree system" reported by [44], but this usage did not continue into the present (see Wikipedia's Chinese numerals article). The ancient usage corresponds directly to myirad, myllion, byllion and tryllion in Knuth's system, including the ordering of words to make the names of arbitrary large numbers. A specific example showing the recursive grouping, with Chinese spelling, phonetic pronunciation and translation into more familiar numeric notation is shown in [44] figure 21.41 (page 278). The Chinese names continue with gai which would be 10^{64}, all the way up to zài=10^{4096} (which is Knuth's decyllion), but usage of the larger ones has only ever been "theoretical" — no actual usage is known.
Upper Limit of Class 2
As with class0 and class1, the limit for class2 numbers is subjective. I defined class 2 numbers as those that "can be represented in exact form using placevalue notation", and this depends on where and how the digits are recorded, which in turn depends on what you want to do with the number. If you just want to store the exact value of a number and not do anything with it, you can keep it on a tape or disk, which has much more capacity — perhaps as much as 10^{12} digits. For some simpler algorithms, such as squaring a number and adding together all the digits of the result, the limit might be quite large — say a billion digits. For algorithms involving many intermediate results, lookup tables or auxiliary data, the limit might be lower — perhaps as few as 1000 or 10000 digits.
So, the limit for class 2 could be anywhere from 10^{3} to 10^{12} digits, depending on the desired operation. We'll just continue the pattern and say that class 2 ends at 1 million digits, i.e. numbers up to 10^{1000000} or 10^{106}.
Class3 Numbers
Class3 numbers are those that can be represented inexactly using scientific notation, to within a given percentage of error. Numbers about the size of Googolplex are class3 numbers, although Googolplex itself can be represented exactly. Class3 numbers include (almost) all combinatoric enumerations of physical systems (i.e. the number of possible states of a system containing N particles, where N is a class2 number, see googolplex notes). The limit of class3 numbers depends on the limit of class2 numbers and the base. As I suggested above, I'll continue the pattern (see the class 2 introduction) and say that class3 goes from 10^{106} to about 10^{101000000}.
Class3 numbers are the largest which can effectively be compared to see if they are of comparable magnitude. For example, the following two numbers are class3 (and are at the low end, as class3 numbers go) :
A = 2^{79641170620168673833}
B = 3^{50247984153525417450}
Which is larger?
We cannot compute the exact values of these two numbers and compare directly — they have way too many digits to store the values on a computer. That is the nature of class3 numbers. However, we can represent both in scientific notation with 10 digits of accuracy. This is accomplished in much the same way that your computer or a scientific calculator would do it. Starting with the logarithm of 2 (or 3), multiply by the exponent, then divide by the logarithm of 10, separating the integer from the fractional part, and use the fractional part to determine the first few digits of the answer. In this case we get:
A = 5.0760252191 × 10^{23974381246463762439}
B = 5.0760252191 × 10^{23974381246463762439}
Now you begin to see the problem. Using 10 decimal places, both values seem to be the same. (We know they are not, because one is a power of 2 and must be even, and the other, being a power of 3 is odd). As it turns out, you need at least 20 decimal places to see that B is slightly larger.
Bowers' Named Numbers
Jonathan Bowers ^{10}, about whom we'll discuss a lot more further below, has invented many names for special numbers in this area: myrillion=10^{30003}, micrillion=10^{3000003}, killillion=10^{3×103000+3}, megillion=10^{3×103000000+3}, gigillion=10^{3×103000000000+3}, and likewise with higher SI prefixes, which he extends, e.g. tedakillion=10^{3×103×1042+3}. There are also a few adhoc Chuquet extensions that attempt to reach up into this area.
Class4 Numbers
Now we move on to Class4 numbers and higher classes. You may have already seen a pattern here; we'll just continue the pattern:
class4 numbers are those numbers that are larger than class3, and whose logarithm can be represented as a class3 number.
Now we have another problem as before. Which of the following class4 numbers is larger?
C = 2^{2283}
D = 3^{3352}
as before we take the logarithm of both but this time we must do it twice, and we find
ln(ln(C)) = ln(ln(2)) + [ln(2) * 9671406556917033397649408]
= 6703708186976009930559261.24579...
ln(ln(D)) = ln(ln(3)) + [ln(3) * 6461081889226673298932241]
= 7098223961595389530659098.10481...
so D is larger.
Skewes' Numbers
These numbers occur in the study of prime numbers, and particularly the frequency of occurrence of prime numbers. Gauss' wellknown estimate of the number of prime numbers less than N is
oo /  1 Li(n) =   du ~= u/(ln(u)1)  ln(u) / u=2For all values of n up to 10^{22} (which is as far as we've been able to compute so far) Li(n) is an overestimate. Littlewood showed that above some value of n it becomes an underestimate, then at an even higher value of n it becomes an overestimate again and so on. In 1933 Skewes showed that (if the Riemann Hypothesis is true) the first crossing cannot be greater than e^{ee79}. This is the first or "Riemann true" Skewes' Number; it is class4. Converted to base 10, the value is normally approximated as 10^{1010^34}; a more accurate approximation is 10^{108.852142×1033} or 10^{108852142197543270606106100452735038.55}.
Since then, others have improved the estimate dramatically. Conway and Guy (The Book of Numbers, page 61) cite the result of Lehman, who in 1966 gave an upper bound of about 10^{1167}. According to Eric W. Weisstein and Wikipedia, in 1987 H. J. J. te Riele reduced the upper bound of the first crossing to e^{e(27/4)}, a class 2 number approximately equal to 8.185×10^{370}. In 2000 Bays and Hudson found an actual crossover point using numerical techniques — around 1.39822×10^{316}. Most recently, in 2005 Patrick Demichel found a smaller crossover point near 1.397162914×10^{316}. In any case, the original Skewes' Number is now just an interesting part of history.
In 1955 Skewes also defined an upper bound if the Riemann Hypothesis is false: 10^{10101000}. This is the "second Skewes' Number"; it is much larger, but still class4.
Class 5 and Higher
In a similar way, we can define higher classes:
class5 numbers are those numbers that are larger than class4, and whose logarithm can be represented as a class4 number.
classN numbers are those numbers that are larger than class N1, and whose logarithm can be represented as a class N1 number.
but as it turns out, these higher classes aren't too useful for representing the large numbers of abstract mathematics. Once we get into the really big numbers like the ones discussed below, exponents are so unwieldy that they are no longer used directly — instead fastergrowing functions like the hyper4 function are used.
Here is a summary of what has been covered so far:

Uncomputably Larger and Uncomparable
At this point it is useful to define the concept of uncomputably larger.
Uncomputably Larger: A is Uncomputably Larger than B if A is larger than B, but the difference does not show up when the numbers are expressed in the same system of representation (with a given standard number of digits).
A system of representation is any system of digits and/or symbols used to express numbers in a standard form that lends itself well to seeing which is bigger. Two examples are integers with a limited number of digits (like a calculator that overflows above 99999999) and standard scientific notation. There are some other computeroriented examples on my Alternative Number Formats page. Mathematical formulas in general do not count (but they are addressed by the less precise concept of uncomparable, see below).
If A is a class 3 number number and K is class 2 or smaller, it is easy to distinguish A×K from A, but hard to distinguish A+K from A. So A+K is "uncomputably larger" than A.
For an example of this, imagine A has trillions of digits. If you add some small number to it, only the last few digits will change — and all of the digits would have to be stored and examined to tell the difference. On the other hand, multiplying A by a small number N will change all the digits, and you can distinguish the difference by comparing the logarithm of A to that of A×N
If A is a class 4 number and K is class 3 or smaller, it is easy to distinguish A^{K} from A, but hard to distinguish A×K from A. A×K is uncomputably larger than A.
If A is a class 5 number and K is class 4 or smaller, it is easy to distinguish A^{④}K from A, but hard to distinguish A^{K} from A. (^{④} is the hyper4 operator). A^{K} is uncomputably larger than A.
This pattern does not continue with higher operators, because the "class" system is based on exponents. For example, if A is a class 10 number and K is class 9 or smaller, it is still easy to distinguish A^{④}K from A, and hard to distinguish A^{K} from A.
I also define the term uncomparable:
Uncomparable: A and B are said to be Uncomparable if it is unknown how to distinguish which is larger.
Notice that this definition depends not only on A and B but also on one's knowledge and/or ability. As you go to higher and higher operators and functions it becomes quite difficult to determine which values are larger than others (I refer to this later in my discussion of superclass 5). It is easy to see that Skewes' Number is bigger than googolplex, but not nearly so easy to figure out which of the GrahamRothschild number and the Moser is bigger.
The GrahamRothschild Number and the Moser are defined with different systems of representation, and the two systems cannot be readily converted into each other. They would be called uncomparable until the two systems are studied and a method is developed to show which number is larger. Once such a method was developed, and it was determined which is larger, they are no longer "uncomparable".
To clarify all of this, here are examples of pairs of numbers as classified by the definitions computably larger and uncomparable:

Power Towers
A tower of exponents like e^{ee79} mentioned above in the discussion of Skewes' numbers is often called a power tower. Notice how in the examples of class3 numbers there are three numbers in the power tower, and in the class4 examples there are 4 numbers in the power tower. But this isn't necessarily always the case, for example 2^{222}} is a power tower with 4 numbers but its value is 65536, a class1 number.
Problem : Start with the 3level power tower 2^{210}. Consider two different ways to make it bigger: Increase the bottommost number, making it H^{210} where H is something really huge like 1000000, or make the power tower higher by making it S^{2210}, where S is something really small like 1.001. Determine which is biggest: the original power tower X = 2^{210}, or the two altered versions, A = 1000000^{210} or B = 1.001^{2210} ?
First we show that A and B are both bigger than X. A>X is obvious. For B it's less obvious. We're comparing:
B = 1.001^{2210} ⋛ 2^{210} = X
Convert both to a power of 2, by taking the log base 2 of 1.001, and repeat. We get:
B = (2^{0.001442})^{2210} ⋛ 2^{210} = X
B = 2^{(0.001442 × 2210)} ⋛ 2^{210} = X
log_{2}B = 0.001442 × 2^{210} ⋛ 2^{10} = log_{2}X
log_{2}B = 2^{(9.4377 + 210)} ⋛ 2^{10} = log_{2}X
log_{2}(log_{2}B) = 9.4377 + 2^{10} ⋛ 10 = log_{2}(log_{2}X)
log_{2}(log_{2}B) is about 1014.56, much bigger than log_{2}(log_{2}X) which is 10. So B>X.
Now we need to compare A to B. Let's rewrite A as a power of 1.001:
A = (1.001^{(log1.0011000000)})^{210} = 1.001^{(log1.0011000000) × (210)}
Then it is a question of which of these is larger: A' = log_{1.001}1000000 × 2^{10} or B' = 2^{210}. Substituting 2^{10} = 1024, we're comparing A' = (log_{1.001}1000000)×1024 to B' = 2^1024, so A'/B' = (log_{1.001}1000000)×1024 / 2^{1024}. Cancelling powers of 2, we remove 1024 from the numerator and reduce the denominator to 2^{1014}: A'/B' = log_{1.001}1000000 / 2^1014. log_{1.001}1000000 is pretty large (it's a little over 13822) but 2^1014 is much much larger! So B' is larger, and therefore B is the biggest of our three power towers.
We could have used any really big number H in place of 1000000 and any small number S in place of 1.001 and B would still be the biggest, as long as log_{S}H is less than 2^{1014}. 2^{1014} is about 1.7556×10^{305}, a class 2 number. To show how extreme this is, let H be a googol and S be 1+^{1}/_{googol}. log_{S}H would be ln(10)×100×googol = 2.3026×10^{102}, still much less than 2^{1014}. So even with this really huge H and really small S, the power tower S^{2210} is still bigger than H^{210}.
In general, if you have a tower of exponents and you want to make it larger, you'll make it much larger by adding another exponent to the bottom than by increasing the size of the bottom exponent, as long as the tower of exponents has something fairly big at the top and the numbers involved are all class 1 or on the lower end of class 2. This leads to the (somewhat nonintuitive) result that if you're comparing two towers of exponents, you can look at how many exponents are in the tower and know right away which is larger. For example,
1.1^{1.11.11000}
is much larger than
1000^{10001000}
and
1.1^{1.11.11.11.11.11.11000}
(which has 7 levels of exponents with 1000 at the top) is much larger than
1000^{100010001000100010001000}
(which has 6 levels of exponents).
A similar phenomenon, the power tower paradox, causes two power towers to be effectively the same if the numbers at the top are the same, even if the numbers near the bottom are different. For example, 27^{1010100} is almost exactly the same as 10^{1010100}
If you're interested in trying some of these out, my Perlbased calculator program can handle everything discussed so far, up to power towers thousands of numbers high.
First page . . . Forward to page 3 . . . Last page (page 7)
If you like this you might also enjoy my numbers page.
s.13