Large Numbers
Read Adam Townsend's wonderful summary
in UCL's chalkdust magazine
This page begins with million, billion, etc., proceeds through Googolplex and Skewes' numbers (organised into "classes" based on the height of the power-tower involved), then moves on through "tetration", the Moser and the "Graham-Rothschild number", on to lesser-known hierarchies of recursive functions, the theory of computation, transfinite numbers and infinities. If it's a number and it's large, it's probably here.
Contents
Class 1 Numbers (like 100)
Class 3 Numbers (like googolplex)
The Quality of Uncomputably Larger
Inventing New Operators and Functions
Hyperfactorial and Superfactorial
Steinhaus-Moser-Ackermann operators
The various "Graham's number"s :
The "Graham-Rothschild Number"
Conway's Chained Arrow Notation
A Partial Ordering for short Conway chains
More Bowers Constructions :
Bowers' Array Notation (4-element Subset)
Bowers Arrays with 5 or More Elements
Generalised Invention of Recursive Functions
The Lin-Rado/Goucher/Rayo/Wojowu Method
Declarative Computation and Combinatory Logic=
Computation by Formal Logic and Set Theory
Direct Declaration of the Existence of a Number
Doing Maths in First-Order-Logic and Set Theory
Transfinite and Infinite Numbers
The First Cardinal Infinity: Aleph-Null
The Ordinal "Countable" Infinities
All Ordinals Countable by Reordering
The Power Sets of the Continuum
Bibliography and other References
Author's Introduction
Large numbers have interested me almost all my life.
This page covers all the huge numbers I have seen discussed in books and web pages, and it actually does so in numerical order, as near as I can tell (see the uncomparable and superclass 5 discussions).
One important thing to notice is that all discussions like this ultimately lead to difficult and unsolved problems in the theory of algorithms and computation. This page ends with Turing machines just before crossing over to the transfinite numbers. If you want to learn something about the theory of algorithms and computation, get two or more fairly knowledgeable people to compete at describing the highest number they can, and then stand back!. One such competition (detailed in a footnote) took only a few days to move beyond the range of everything discussed in the first two-thirds of this webpage, and then spent another few years discussing formal proofs.
This page is meant to counteract the forces of Munafo's Laws of Mathematics. If you see room for improvement, let me know!
Classes
First of all, I'm going to define what I call "classes" of numbers. This is a somewhat refined and more precise version of the "levels of perceptual realities" presented by Douglas Hofstadter in a 1982 Scientific American column [39] (and reprinted in his 1985 book [41]). It is a powerful and basic concept but usually goes unsaid. I think you'll agree that the classes make sense and are a useful way to distinguish numbers. Almost all numbers that are easy to make simple statements about (such as which of two numbers is larger) can be put into the class system.
All numbers that anyone ever has to deal with in any practical application (unless you count abstract mathematics and nerdyone-upmanship contests as practical :-) are members of one of thefirst four classes. Googol and googolplex are examples from class 2 and class 3, respectively.
Class-0 Numbers
Class-0 numbers are those that are small enough to have an immediate intuitive or perceptual impact. Perceiving such a number is called subitising, and for most purposes the limit has been shown to be somewhere from 5 to 9 (see Kaufman [30] and Miller [31]). I'll be a bit conservative here and place the limit at six. So, the numbers 0 through 6 are class 0.
Experiments with animals, when sufficiently well set up and conducted, show that animals are able to identify numbers of objects and exhibit different behavior based on whether the number of objects is equal to some specific value — for example, pressing a lever only when five objects are present. Such experiments also show that the animal's ability to perform the feat falls off sharply between 4 and 8: the task can almost always be performed reliably when the number is 4, and can seldom be performed reliably when the number is 8 (with intermediate results in-between).
It is a widespread belief (perhaps myth) that there are/were some primitive tribes which distinguished the concept of number but couldn't count any higher than three or some other small number. (A tribe called the Hottentots was said to have only four words for numbers, "one" "two" "three" and "many" — but not having a word for it is different from not being able to distinguish it). Whether or not this is true, it reflects the basic truth of the fact that the human mind requires some additional abstraction or understanding to go beyond the first few or several small numbers.
One way to see this phenomenon for yourself is to use flash cards (or a computer program set up to simulate flash cards) that present pictures of objects that can be counted and placed in random arrangements — but look at the picture only long enough to see it, and not long enough to start counting. Then, after the picture is hidden, ask how many objects there were. You then try to count the number of objects in your mental image of the picture you've just seen. If the number of objects is a class 0 number, you'll usually be able to give the right answer. As you increase the numbers of objects, your counts will be less and less likely to be correct. Obviously, this gives a rather fuzzy definition of "class 0", but the value you get will almost always be "around" 6.
Class-1 Numbers
Class-1 numbers are those that are small enough to be perceived as a bunch of objects seen directly by the human eye. What I mean by "seen directly" is that it is possible to see the number as a set of separate, distinct objects in a single scene (no time limit, but the observer and the objects cannot move). 100 is a class-1 number because it is possible to see 100 objects (goats for example) in a single scene. The limit for class-1 numbers is around a million, 1,000,000 or 10^{6}. You can just barely put 1,000,000 dots on a large piece of paper and stand at a distance such that you can perceive each individual dot as a distinct dot, and at the same time be within viewing distance of the other 999,999 dots. (I have actually done this, just for fun!) As with Class-0 the definition is fuzzy, some people have better vision and could manage 10,000,000 dots or even more.
The earliest conscious communication of numbers between humans was probably limited to class-0 and very low class-1 numbers, because of simple physical methods of counting (like fingers and toes). The first written number systems consisted of tally marks and extended into the class-1 range. (Methods involving objects or symbols that each count for 5, 10 or larger values, came later, see below.)
Class-1 numbers include all quantities that people can comfortably handle or perceive. For values in class 1, it is easy to distinguish the magnitude of the value just by looking at it. Most people have realised that, if they walk into a room with 85 people, although they can't tell it's exactly 85, they know right away it's somewhere around 75 to 100. No thought or calculation is necessary. This is an immediate perception of magnitude, and the ability extends to numbers up into the thousands and tens of thousands, but drops off after that. A person in a stadium with 10,000 people will have a fuzzier magnitude perception (they might guess anywhere from 3,000 to 30,000). By the time we get to numbers like 10^{8} (the number of blades of grass in an acre) a person is probably about as likely to believe "10 million" (10^{7}) as "a trillion" (10^{12}) unless they take the time to do some calculations.
Class-1 numbers also include most types of things that people aggregate or count with the passage of time. If you have kept count of how many times you have done something (e.g. jogging) or the number of things in a collection (e.g. stamps) it probably numbers in the class 1 range. The actual act of counting usually wears out before exceeding class 1, partly because of the difficulty of accurately remembering the digits. (While counting the number of days you have jogged is fairly easy, most people would not be able to persist in keeping count of how many steps they had taken once that number gets into 6 or 7 digits!) I tried this myself at age 9 and reached 35000 before memory became too difficult.
Symbolic representations of numbers soon became common. The earlier systems were just tally-marks with lots of different symbols, like one symbol to represent 1's and another to represent 10's, etc. Roman numerals are the last surviving example of this. Often, different types of physical objects (like round and flat stones) were used for counting. Many examples are described in [45]. With symbolic systems it became easy for people to express, write, and do arithmetic with numbers throughout the class-1 range. Such representation systems usually reached their limit right around 1,000,000 for the same reasons that class-0 perceptive abilities are limited to 6: it is difficult to keep track of lots of different types of symbols/objects at once, and 5 or 6 types of symbols/objects is a practical limit.
Class-2 Numbers
Class-2 numbers are those that can be represented in exact form using decimal place-value notation (or another small integer base, like base 2, 16 or 60). Typically this depends on how the digits are recorded and what you need to do with them. Since I used 6 as the upper limit of class 0, and 10^{6} = 1000000 for the upper limit of class 1, I'll just continue the pattern and say that the class-2 numbers go from 10^{6} to about 10^{1000000}.
Place-value notation was popularised in the Arabic culture (but came from India, and perhaps from China before that, again see [45]). It opened up the range of class-2 numbers to anyone who wanted to use them. It was no longer necessary to come up with new symbols for each successive power of 10. Generalizations in arithmetic rules were obvious: adding 2000+7000 was not only analogous to adding 2+7, it was essentially the same thing. Handling huge numbers became easy. To make an exact calculation about thousands of objects, only a handful of objects (the digits) need to be manipulated.
Googol is a class-2 number, as are the various large prime numbers used in cryptography, all of the known Perfect numbers (until 1997!), the Fermat numbers with known factorization, etc. All of the large physical constants like 6.02×10^{23} (Avogadro's number) and 10^{80} (the number of protons in the universe) are class-2. So are most of the numbers with names ending in -illion, like vigintillion (10^{63}), centillion (10^{303}), and on up to the somewhat contrived milli-millillion (10^{3000003}) (which, by my admittedly arbitrary decision, is a bit beyond the class-2 range).
The Big Number Names of Nicolas Chuquet
The word million comes from around 1270^{2}, and entered the English language around 1370^{6}. The names billion, trillion, and so on up to nonillion, plus the general idea of continuing with Latin-derived prefixes all first appear in the late 15^{th} century, in writing by Nicolas Chuquet, a French mathematician living in Lyon from 1480 until his death in 1488. (There were also the longer forms bymillion and trimillion used as early as 1475 by Jehan Adam, but these never caught on). Follow this link for more details: Origins of the Chuquet number names.
Peletier's Proposal and the Short Scale
In 1549 Jacques Peletier repeated the suggestion that billion should be one million million = 10^{12}, and trillion for 10^{18} and so on. He also introduced^{1},^{2} the use of milliart, billiart and so on to represent the skipped-over powers of 1000, like 10^{9} and 10^{15}.
The long scale is Chuquet's original system, and has digits grouped 6 at a time, thus trillion is a million times larger than billion. This is the "billion=10^{12} system". Peletier's names for 10^{(6N+3)} (in the English spelling, milliard=10^{9}, billiard=10^{15}, etc.) are compatible with this system.
The use of number-names during the following few centuries eventually led to widespread usage of billion to mean 10^{9}, trillion for 10^{12}, and similar redefinitions of the higher names. These definitions are the short scale or "billion=10^{9} system". Follow this link for more on the history of short vs. long scale. Here is a related video by Numberphile: How big is a billion?.
Zillions: Big-Number Words as a Hyperbolic Adjective
While the confusion between short and long scale was becoming well-established, the big-number words ending in -illion were also becoming popular for the purpose of espressing an excessively or unimaginably large, or even infinite, quantity. This is a type of usage that was already common for hundreds, thousands, myriads and millions. For example, OED's [42] HUNDRED heading 2 a. begins: "Often used indefinitely or hyperbolically for a large number: cf. thousand. (With various constructions, as in [heading] I.)", and then gives nine quotations dating from 1300 AD to 1885. In the following table I show the first documented use of each number-name in both the literal sense and in this "superlative" sense.
(It should be noted that zillion more generally can refer to far larger things. For example, Howard DeLong[34] used the term "zillion" to refer to an iterated Ackermann function of some other really large number c_{1}.[49]
Standard Accepted Names and SI Prefixes
This table shows all positive powers of ten that have authoritatively accepted names in English (by [42]) up to Chuquet's highest name nonillion. The numeric values here follow the billion=10^{9} system ("short scale"). I am also including a few other non-powers of 10 that have names in English, but leaving out many base-20 constructions and other names less than 100, about which you can read plenty in [45]. I include all former and current official SI prefixes because they are quasi-"words" that have a purely numerical meaning. The dates of first literal and superlative usage are largely from OED [42] but are augmented as indicated in the footnotes.
The Standard Names and SI Prefixes
N | N in Latin ^{3},^{18} | 10^{3N+3} | name for 10^{3N+3} | first literal usage [42] | first superlative usage [42] | SI prefix(es)^{20} |
10^{1} | ten | deca- or deka- (da,dk) | ||||
10^{2} | hundred | 950 AD | 1300 | hecto- (h) | ||
10×12 | great hundred | 1533 | ||||
12^{2} | gross | 1411 | ||||
0 | 10^{3} | thousand | 971 AD | 1000 | kilo- (k) | |
2^{10} | 1024 | kibi- (ki) | ||||
12^{3} | great gross | 1640 | ||||
10^{4} | myriad | 1555 | 1555 | myria- (my) | ||
1 | unus | 10^{6} | million | 1370 | 1362 | Mega- (M) |
2^{20} | 1048576 | Mebi- (Mi) | ||||
2 | duo | 10^{9} | great million, milliard, billion | 1625, 1793, 1690^{21} | ?, 1823^{22}, ? | kilomega-, Giga- (G) |
2^{30} | 1073741824 | Gibi- (Gi) | ||||
3 | tres | 10^{12} | trillion | 1690^{21} | 1847^{23} | megamega-, Tera- (T) |
2^{40} | 1099511627776 | Tebi- (Ti) | ||||
4 | quatuor | 10^{15} | quadrillion | 1674^{21} | 1855^{23} | Peta- (P) |
2^{50} | 1125899906842624 | Pebi- (Pi) | ||||
5 | quinque | 10^{18} | quintillion | 1674^{21} | 1855^{23} | Exa- (E) |
2^{60} | 1152921504606846976 | Exbi- (Ei) | ||||
6 | sex | 10^{21} | sextillion | 1690^{21} | 1855^{23} | Zetta- (Z) |
2^{70} | 1180591620717411303424 | Zebi- (Zi) | ||||
7 | septem | 10^{24} | septillion | 1690^{21} | ? | Yotta- or Yotto- (Y) |
2^{80} | 1208925819614629174706176 | Yobi- (Yi) | ||||
8 | octo | 10^{27} | octillion | 1690^{21} | 1855^{23} | |
9 | novem | 10^{30} | nonillion | 1690^{21} | ? |
Chuquet left it to others to work out the details of extending the names beyond nonillion. Although there is much discrepancy between the actual number-names in Latin and the -illion names Chuquet listed, it was nevertheless understood that Latin number-names were to be used to extend the names as needed. Using Latin for prefixes goes smoothly as far as vigintillion. The following names are found in many dictionaries^{19}; vigintillion and centillion are a little more common than the others. Some popular non-dictionary sources have made reference to millillion and milli-millillion (mostly due to Henkle/Brooks, and Borgmann [33]).
Larger Standard Names Beyond Chuquet's Nonillion
N | N in Latin ^{3},^{18} | 10^{3N+3} | name for 10^{3N+3} |
10 | decem | 10^{33} | decillion |
11 | undecim | 10^{36} | undecillion |
12 | duodecim | 10^{39} | duodecillion |
13 | tredecim | 10^{42} | tredecillion |
14 | quattuordecim | 10^{45} | quattuordecillion |
15 | quindecim | 10^{48} | quindecillion, quinquadecillion |
16 | se(x)decim | 10^{51} | sexdecillion, sedecillion |
17 | septemdecim | 10^{54} | septendecillion |
18 | duodeviginti^{24} | 10^{57} | octodecillion |
19 | undeviginti^{24} | 10^{60} | novemdecillion, novendecillion |
20 | viginti | 10^{63} | vigintillion |
10^{100} | "googol" = ten duotrigintillion | ||
100 | centum | 10^{303} | centillion |
1000 | mille | 10^{3003} | millillion |
1000000 | decies centena milia | 10^{3000003} | milli-millillion |
10^{10100} | "googolplex" |
The Conway-Wechsler System
Chuquet's names are notable for being well-researched, faithful to Latin within limits of utility, for retaining the meaning of existing widely-used names, and for being proposed by a respected well-known mathematician. The Henkle/Brooks names fall short of that mark on one or two counts.
The only modern-day system with equivalent qualifications is that described by Conway in [43]. It extends the Chuquet names arbitrarily far, and surpasses the other ad-hoc systems by having better spelling, greater consistency, and avoiding hyphens. It was developed by John Horton Conway and Allan Wechsler after significant research into Latin^{5}. Olivier Miakinen^{4},^{9} refined it to fix a few minor problems, as described below.
The system is based on the short scale (billion=10^{9}) but the names could easily be used in a long scale system. A number name is built out of pieces representing powers of 10^{3}, 10^{30} and 10^{300} as shown by this table:
1's | 10's | 100's | |
0 | - | - | - |
1 | un | (n) deci | (nx) centi |
2 | duo | (ms) viginti | (n) ducenti |
3 | tre (*) | (ns) triginta | (ns) trecenti |
4 | quattuor | (ns) quadraginta | (ns) quadringenti |
5 | quin | (ns) quinquaginta | (ns) quingenti |
6 | se (sx) | (n) sexaginta | (n) sescenti |
7 | septe (mn) | (n) septuaginta | (n) septingenti |
8 | octo | (mx) octoginta | (mx) octingenti |
9 | nove (mn) | nonaginta | nongenti |
The rules are:
- Take the power of 10 you're naming and subtract 3.
- Divide by 3. If the remainder is 0, 1 or 2, put one, ten or one hundred at the beginning of your name (respectively).
- For a quotient less than 10, use the standard names thousand, million, billion and so on through nonillion. Otherwise:
- Break the quotient up into 1's, 10's and 100's. Find the appropriate name segments for each piece in the table. (NOTE: The original Conway-Wechsler system specifies quinqua for 5, not quin.)
- String the segments together, inserting an extra letter if the letter shown in parentheses at the end of one segment match a letter in parentheses at the beginning of the next. For example: septe(mn) + (ms)viginti = septemviginti because the (m)'s match; Another example: se(sx) + (mx)octoginta = sexoctoginta.
- For the special case of tre, the letter s should be inserted if the following part is marked with either an s or an x.
- Remove a final vowel, if any.
- Add illion at the end. You're done.
Many of the resulting names are only slightly different from one another. For example 10^{261} is sexoctogintillion and 10^{2421} is sexoctingentillion. Then there's 10^{309} = duocentillion while 10^{603} = ducentillion; and similarly 10^{312} = trescentillion while 10^{903} = trecentillion.
However, if such subtleties of spelling (and probably pronunciation) don't bother you, the Conway-Wechsler system extends to arbitrarily high values. After setting out the rules above, the authors continue^{7}:
With Allan Wechsler we propose to extend this system indefinitely by combining these according to the convention that "XilliYilliZillion" (say) denotes the (1000000X + 1000Y + Z)th zillion, using "nillion" for the zeroth "zillion" when this is needed as a placeholder. So for example the million-and-third zillion is a "millinillitrillion."
As their example shows, the beginning parts of the standard names such as million and trillion are used for the "1" and "003" parts (respectively) of the number 1,000,003, with the placeholder "nilli" for the central "000" portion. This is the "1,000,003^{rd} zillion", which is 10^{3×1000003+3}=10^{3000012}. In general, when naming 10^{3N+3}, the rules above are to be used for each group of 3 digits in the number N.
For another example, consider 10^{19683}: this is 10^{3×6560+3}, so N=6560. That breaks up into a "6" part (the standard sextillion) and a "560" part (sexagintaquingentillion by the above table and rules); these are combined to form sextillisexagintaquingentillion which is the full Conway-Wechsler name for 10^{19683}.
The name for googolplex is ten trillitrestrigintatrecentilli....trestrigintatrecentilliduotrigintatrecentillion; with the "...." replaced by 30 additional repetitions of "trestrigintatrecentilli". This name is two words and 3+766 letters long.
See more examples of Conway-Wechsler number names here.
There have also been numerous personal or ad-hoc Chuquet extensions, follow that link for more.
A Practical Alternative
If the above tables seem a bit much to deal with, here is my modest proposal for a simpler naming system:
- Learn a few of the smaller powers of 1000.
- Beyond that, use "Ten to the power of..." followed by the appropriate class 1 number.
. . . Forward to page 2 . . . Last page (page 9)
Japanese readers should see: 巨大数論 (from @kyodaisuu on Twitter)
If you like this you might also enjoy my numbers page.
This page was written in the "embarrassingly readable" markup language RHTF, and some sections were last updated on 2017 Feb 02. s.11