Large numbers
From Academic Kids

 For information on how large numbers are named in English, see names of large numbers.
Large numbers are numbers that are large compared with the numbers used in everyday life. The term typically refers to large positive integers, or more generally, large positive real numbers, but it may also be used in other contexts.
Very large numbers often occur in fields such as mathematics, cosmology and cryptography. Sometimes people refer to numbers as being "astronomically large". However, it is easy to mathematically define numbers that are much larger than those even in astronomy.
Contents 
Using scientific notation to handle large and small numbers
Large numbers are often found in science, and scientific notation was created to handle the large and small numbers which often occur in scientific study. 1.0 × 10^{9}, for example, means one billion, a 1 followed by nine zeros: 1,000,000,000, and 1.0 × 10^{−9} means one billionth, or 0.0000000001. Writing 10^{9} instead of nine zeros saves readers the effort and hazard of counting a long string of zeros to see how large the number is.
Adding a 0 onto the end of a number multiplies it by 10: 100 is 10 times 10. In scientific notation, however, the exponent only increases by one, from 10^{1} to 10^{2}. Remember then, when reading numbers in scientific notation, that small changes in the exponent equate to large changes in the number itself: 2.5 × 10^{0} dollars ($2.50) is the price of a large burger, 2.5 × 10^{5} dollars ($250,000) is a common price for new homes in the U.S., while 2.5 × 10^{10} dollars ($25 billion) would make you one of the world's richest people (tied for third place in 2005) and 2.5 × 10^{15} dollars ($2.5 quadrillion) is more than all the government debts, all the money in circulation, and all the market capitalizations of all public corporations combined.
For more on these ideas, see the following articles:
Large numbers in the everyday world
Some large numbers apply to things in the everyday world.
Examples of large numbers describing everyday realworld objects are:
 the number of cigarettes smoked in the United States in one year (on the order of 10^{12}, one trillion)
 the number of bits on a computer hard disk (typically between 10^{12} and 10^{13})
 the number of cells in the human body (more than 10^{14})
 the number of neuronal connections in the human brain (estimated at 10^{14})
 in science, Avogadro's number is approximately 6.022 × 10^{23}
Other examples are given in Orders of magnitude (numbers).
A rule of thumb for converting between scientific notation and powers of two
Here is a rule of thumb for converting between scientific notation and powers of two, since computerrelated quantities are frequently stated in powers of two. Note that 10^{3} = 1000 is very near 2^{10} = 1024. This allows for a quick mental conversion between powers of ten and powers of two. For example,
 <math>10^{47} = 10^{45} \times 10^2 = (10^3)^{15} \times 100 \approx (2^{10})^{15} \times 128 = 2^{150} \times 2^7 = 2^{157}<math> and
 <math>2^{101} = 2^{100} \times 2 = (2^{10})^{10} \times 2 \approx (10^3)^{10} \times 2 = 2 \times 10^{30}<math>
Computability and computational complexity
Moore's Law, generally speaking, estimates that computers double in speed about every 18 months. This sometimes leads people to believe that eventually, computers will be able to solve any mathematical problem, no matter how complicated. This is not the case; computers are fundamentally limited by the constraints of physics, and certain upper bounds on what we can expect can reasonably be formulated. Also, there are certain theoretical results which show that some problems are inherently beyond the reach of complete computational solution, no matter how powerful or fast the computation; see Nbody problem.
Between 1980 and 2000, hard disk sizes increased from about 10 megabytes (1 × 10^{7}) to over 100 gigabytes (10^{11} bytes). A 100 gigabyte disk could store the given names of all of Earth's six billion inhabitants without using data compression. But what about a dictionaryondisk storing all possible passwords containing up to 40 characters? Assuming each character equals one byte, there are about 2^{320} such passwords, which is about 2 × 10^{96}. This paper (http://arxiv.org/abs/quantph/0110141) points out that if every particle in the universe could be used as part of a huge computer, it could store only about 10^{90} bits, less than one millionth of the size our dictionary would require.
Of course, even if computers can't store all possible 40 character strings, they can easily be programmed to start creating and displaying them one at a time. As long as we don't try to store all the output, our program could run indefinitely. Assuming a modern PC could output 1 billion strings per second, it would take one billionth of 2 × 10^{96} seconds, or 2 × 10^{87} seconds to complete its task, which is about 6 × 10^{79} years. By contrast, the universe is estimated to be 13.7 billion (1.37 × 10^{10}) years old. Of course, computers will presumably continue to get faster, but the same paper mentioned before estimates that the entire universe functioning as a giant computer could have performed no more than 10^{120} operations since the Big Bang. This is trillions of times more computation than is required for our stringdisplaying problem, but simply by raising the stakes to printing all 50 character strings instead of all 40 character strings we can outstrip the estimated computational potential of even the universe itself.
Problems like our simple stringdisplaying example grow exponentially in the number of computations they require, and are one reason why exponentially difficult problems are called "intractable" in computer science: for even small numbers like the 40 or 50 characters we used in our example, the number of computations required exceeds even theoretical limits on mankind's computing power. The traditional division between "easy" and "hard" problems is thus drawn between programs that do and do not require exponentially increasing resources to execute. However, not requiring exponentially increasing resources is not enough to guarantee computability in practice – e.g. there are many algorithms of polynomial growth whose numerical parameters are so large as to render them unusable.
Such limits work to our advantage in cryptography, since we can safely assume that any cipherbreaking technique which requires more than, say, the 10^{120} operations mentioned before will never be feasible. Of course, many ciphers have been broken by finding efficient techniques which require only modest amounts of computing power and exploit weaknesses unknown to the cipher's designer. Likewise, much of the research throughout all branches of computer science focuses on finding new, efficient solutions to problems that work with far fewer resources than are required by a naïve solution. For example, one way of finding the greatest common divisor between two 1000 digit numbers is to compute all their factors by trial division. This will take up to 2 × 10^{500} division operations, far too large to contemplate. But the Euclidean algorithm, using a much more efficient technique, takes only a fraction of a second to compute the GCD for even huge numbers such as these.
As a general rule, then, PCs in 2005 can perform 2^{40} calculations in a few minutes. A few thousand PCs working for a few years could solve a problem requiring 2^{64} calculations, but no amount of traditional computing power will solve a problem requiring 2^{128} operations (which is about what would be required to break the 128bit SSL commonly used in web browsers, assuming the underlying ciphers remain secure). Limits on computer storage are comparable. Quantum computers may allow certain problems to become feasible, but as of 2005 it is far too soon to tell.
For more on these ideas, see the following articles:
 computation
 computational complexity theory
 algorithmic information theory
 computability theory
 Big O notation
"Astronomically large" numbers
Other large numbers are found in astronomy:
 number of atoms in the visible universe, perhaps 10^{79} to 10^{81}, see Mass, Size, and Density of the Universe (http://www.sunspot.noao.edu/sunspot/pr/answerbook/universe.html#q70)
 for astronomical numbers related to distance and time, see:
Even larger numbers
Combinatorial processes rapidly generate even larger numbers. The factorial function, which defines the number of permutations on a set of fixed objects, grows very rapidly with the number of objects. Stirling's formula gives a precise asymptotic expression for this rate of growth.
Combinatorial processes generate very large numbers in statistical mechanics. These numbers are so large that they are typically only referred to using their logarithms.
Gödel numbers, and similar numbers used to represent bitstrings in algorithmic information theory are very large, even for mathematical statements of reasonable length. However, some pathological numbers are even larger than the Gödel numbers of typical mathematical propositions.
Examples
 googol = <math>10^{100}<math>
 googolplex = <math>10^{\mbox{googol}}=10^{\,\!10^{100}}=\mbox{googol}^{10^{98}}<math> It is the number of states a system can be in that consists of <math>10^{98}<math> particles, each of which can be in googol states. Alternatively, it is the number of states a system can be in that consists of a google particles, each of which can be in 10 states.
 centillion = <math>10^{303}<math> or <math>10^{600}<math>, depending on number naming system
 Skewes' numbers: the first is ca. <math>10^{\,\!10^{10^{34}}}<math>, the second <math>10^{\,\!10^{10^{1000}}}<math>
The total amount of printed material in the world is roughly 1.6 × 10^{18} bits, therefore the contents can be represented by a number which is roughly <math>2^{1.6 \times 10^{18}}\approx 10^{4.8 \times 10^{17}}<math>
For a "power tower", the most relevant for the value are the height and the last few values. Compare with googolplex:
 <math>10^{\,\!100^{10}} = 10^{10^{20}}<math>
 <math>100^{\,\!10^{10}} \approx 10^{10^{10.3}}<math>
Also compare:
 <math>1.1^{\,\!1.1^{1.1^{1000}}} \approx 10^{10^{1.02*10^{40}}}<math>
 <math>1000^{\,\!1000^{1000}}\approx 10^{10^{3000.48}}<math>
The first number is much larger than the second, due to the larger height of the power tower, and in spite of the small numbers 1.1 (however, if these numbers are made 1 or less, that greatly changes the result). In comparing the magnitude of each successive exponent in the last number with <math>10^{\,\!10^{10}}<math>, we find a difference in the magnitude of effect on the final exponent. In the number 3000.48, the final exponent, The overall magnitude of the final exponent is donated by the 2^{nd} exponent (1000). The 1^{st} exponent only adds a factor of 3 to the mix (<math>1000*3<math>). The base number only supports a factor of 1.00016 in the final exponent (<math>1000*3*1.00016=3000.48<math>). This clearly shows the importance of the highest exponent in the stack.
Standardized system of writing very large numbers
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.
Tetration with base 10 can be used for very round numbers, each representing an order of magnitude in a generalized sense.
Numbers in between can be expressed with a power tower of numbers 10, with at the top a regular number, possibly in scientific notation, e.g. <math>10^{\,\!10^{10^{10^{10^{4.829*10^{183230}}}}}}<math>, a number between <math>10\uparrow\uparrow 7<math> and <math>10\uparrow\uparrow 8<math> (if the exponent quite at the top is between 10 and <math>10^{10}<math>, like here, the number like the 7 here is the height).
If the height is too large to write out the whole power tower, a notation like <math>(10\uparrow)^{183}(3.12*10^6)<math> can be used, where <math>(10\uparrow)^{183}<math> denotes a functional power of the function <math>f(n)=10^n<math> (the function also expressed by the suffix "plex" as in googolplex, see the Googol family).
Various names are used for this representation:
 base10 exponentiated tower form
 tetratedscientific notation
 incomplete (power) tower
The notation <math>(10\uparrow)^{183}(3.12*10^6)<math> is in ASCII ((10^)^183)3.12e6; a proposed simplification is 10^^183@3.12e6; the notations 10^^1@3.12e6 and 10^^0@3.12e6 are not needed, one can just write 10^3.12e6 and 3.12e6.
Thus googolplex = 10^^2@100 = 10^^3@2 = 10^^4@0.301; which notation is chosen may be considered on a numberbynumber basis, or uniformly. In the latter case comparing numbers is sometimes a little easier. For example, comparing 10^^2@23.8 with 10^6e23 requires the small computation 10^.8=6.3 to see that the first number is larger.
To standardize the range of the upper value (after the @), one can choose one of the ranges 01, 110, or 101e10:
 In the case of the range 01, an even shorter notation is (here for googolplex) like 10^^3.301 (proposed by William Elliot (http://groups.google.com/groups?hl=en&lr=&newwindow=1&safe=off&selm=20020411032113.I50801100000%40agora.rdrop.com)). This is not only a notation, it provides at the same time a generalisation of 10^^x to real x>2 (10^^4@0=10^^3, hence the integer before the point is one less than in the previous notation). This function may or may not be suitable depending on required smoothness and other properties; it is monotonically increasing and continuous, and satisfies 10^^(x+1) = 10^(10^^x), but it is only piecewise differentiable. The inverse function is a superlogarithm or hyperlogarithm, defined for all real numbers, also negative numbers. See also Extension of tetration to real numbers.
 The range 101e10 brings the notation closer to ordinary scientific notation, and the notation reduces to it if the number is itself in that range (the part "10^^0@" can be dispensed with).
Another example:
 <math>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.0 \times 10^{19,728})
<math> (between <math>10\uparrow\uparrow 65,533<math> and <math>10\uparrow\uparrow 65,534<math>)
The "order of magnitude" of a number (on a larger scale than usually meant), can be characterized by the number of times (say n) one has to take the <math>log_{10}<math> to get a number between 1 and 10. Then the number is between <math>10\uparrow\uparrow n<math> and <math>10\uparrow\uparrow (n+1)<math>
An obvious property that is yet worth mentioning is:
 <math>10^{(10\uparrow)^{n}x}=(10\uparrow)^{n}10^x<math>
I.e., if a number x is too large for a representation <math>(10\uparrow)^{n}x<math> we can make the power tower one higher, replacing x by <math>log_{10}x<math>, or find x from the lowertower representation of the <math>log_{10}<math> 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 not exactly given then giving a value at the top does not make sense, and a notation like <math>10\uparrow\uparrow(7.21*10^8)<math> can be used.
If the value after the double arrow is a very large number itself, the above can recursively be applied on that value.
Examples:
 <math>10\uparrow\uparrow 10^{\,\!10^{10^{3.81*10^{17}}}}<math> (between <math>10\uparrow\uparrow\uparrow 2<math> and <math>10\uparrow\uparrow\uparrow 3<math>)
 <math>10\uparrow\uparrow 10\uparrow\uparrow (10\uparrow)^{497}(9.73*10^{32})<math> (between <math>10\uparrow\uparrow\uparrow 4<math> and <math>10\uparrow\uparrow\uparrow 5<math>)
Some large numbers which one may try to express in such standard forms include:
External link: Notable Properties of Specific Numbers (http://home.earthlink.net/~mrob/pub/math/numbers14.html) (last page of a series which treats the numbers in ascending order, hence the largest numbers in the series)
Accuracy
Note that for a number <math>10^n<math>, one unit change in n changes the result by a factor 10. In a number like <math>10^{\,\!6.2 \times 10^3}<math>, with the 6.2 the result of proper rounding, the true value of the exponent may be 50 less or 50 more. Hence the result may be a factor <math>10^{50}<math> too large or too small. This is seemingly an extremely poor accuracy, but for such a large number it may be considered fair (a large error in a large number may be relatively small and therefore acceptable).
Accuracy for very large numbers
With extremely large numbers, the relative error may be large, yet there may still be a sense in which we want to consider the numbers as "close in magnitude". For example, consider
 <math>10^{10}<math> and <math>10^9<math>
The relative error is
 <math>1  \frac{10^9}{10^{10}} = 1  \frac{1}{10} = 90%<math>
a large relative error. However, we can also consider the relative error in the logarithms; in this case, the logarithms (to base 10) are 10 and 9, so the relative error is only 10%.
The point is that exponential functions magnify relative errors greatly – if a and b have small relative error,
 <math>10^a<math> and <math>10^b<math>
may not have small relative error, and
 <math>10^{10^a}<math> and <math>10^{10^b}<math>
will have even larger relative error. The question then becomes: on which level of iterated logarithms do we wish to compare two numbers? There is a sense in which we may want to consider
 <math>10^{10^{10}}<math> and <math>10^{10^9}<math>
to be "close in magnitude". The relative error between these two number is large, and the relative error between their logarithms is still large; however, the relative error in their seconditerated logarithms is small:
 <math>\log_{10}(\log_{10}(10^{10^{10}})) = 10<math> and <math>\log_{10}(\log_{10}(10^{10^9})) = 9<math>
Such comparisons of iterated logarithms are common, e.g., in analytic number theory.
Approximate arithmetic for very large numbers
There are some general rules relating to the usual arithmetic operations performed on very large numbers:
 The sum and the product of two very large numbers are both approximately equal to the larger one.
 <math>(10^a)^{\,\!10^b}=10^{a 10^b}=10^{10^{b+\log _{10} a}}<math>
Hence:
 A very large number raised to a very large power is approximately equal to the larger of the following two values: the first value and 10 to the power the second. For example, for very large n we have <math>n^n\approx 10^n<math> (see e.g. the computation of mega) and also <math>2^n\approx 10^n<math>. Thus <math>2\uparrow\uparrow 65536 > 10\uparrow\uparrow 65533<math>, see table.
Uncomputably large numbers
The busy beaver function Σ is an example of a function which grows faster than any computable function. Its value for even relatively small input is huge. The values of Σ(n) for n = 1, 2, 3, 4 are 1, 4, 6, 13. Σ(5) is not known but is definitely ≥ 4098. Σ(6) is at least 1.29×10^{865}.
Infinite numbers
See main article cardinal number
Although all these numbers above are very large, they are all still finite. Some fields of mathematics define infinite and transfinite numbers. For example, alephnull is the cardinality of the infinite set of natural numbers, and alephone is the next greatest cardinal number. <math>\mathfrak{c}<math> is the cardinality of the reals. The proposition that <math>\mathfrak{c} = \aleph_1<math> is known as the continuum hypothesis.
See also:
Notations
Some notations for extremely large numbers:
 Knuth's uparrow notation / hyper operators / Ackermann function, including tetration
 Conway chained arrow notation
 SteinhausMoser 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.
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.
Note that 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.
English names
In addition to mathematical and scientific notation, large numbers can be written out in English. See Names of large numbers.
See also
 History of large numbers
 Law of large numbers
 Exponential growth
 Bignums
 Small numbers
 Human scale
 Number names
 Hyperlogarithm
 Googol
 Googolplex
 Googolplexian
 Zillion
 Umpteen
External links
 "Large Numbers" and "Notable Properties of Specific Numbers"  Robert Munafo (http://home.earthlink.net/~mrob/pub/math/largenum.html)
 Big numbers  Susan Stepney (http://wwwusers.cs.york.ac.uk/~susan/cyc/b/big.htm)
 Hamlet is a Big Number  Jim Blowers (1) (http://jimvb.home.mindspring.com/hamlet.htm), (2) (http://jimvb.home.mindspring.com/ComNum.htm)
 How to calculate with large numbers  Dave L. Renfro (http://groups.google.com/groups?selm=28ae5e5e.0204081449.3b8479c4%40posting.google.com&output=gplain)
 Graham's number and rapidly growing functions  Dave L. Renfro (http://mathforum.org/discuss/sci.math/m/394644/394645)
 Discussion and modification of notation (http://groups.google.com/groups?hl=en&lr=&newwindow=1&safe=off&threadm=28ae5e5e.0204081449.3b8479c4%40posting.google.com&rnum=1&prev=/groups%3Fnum%3D100%26hl%3Den%26lr%3D%26newwindow%3D1%26safe%3Doff%26q%3D%2B%2522tetration%2522%2B%253A%2B%2522scientific%2Bnotation%2522)
 Ackermann’s function and new arithmetical operations  Rubtsov and Romerio (http://www.rotarysaluzzo.it/filePDF/Iperoperazioni%20(1).pdf) (pdf)
 wiki:ReallyBigNumbers
 http://michaelhalm.tripod.com/mathematics_beyond_the_googol.htm (various terminology for large numbers; contains errors)sl:veliko število