Large numbers
|
- 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 × 109, 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 109 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 101 to 102. Remember then, when reading numbers in scientific notation, that small changes in the exponent equate to large changes in the number itself: 2.5 × 100 dollars ($2.50) is the price of a large burger, 2.5 × 105 dollars ($250,000) is a common price for new homes in the U.S., while 2.5 × 1010 dollars ($25 billion) would make you one of the world's richest people (tied for third place in 2005) and 2.5 × 1015 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 real-world objects are:
- the number of cigarettes smoked in the United States in one year (on the order of 1012, one trillion)
- the number of bits on a computer hard disk (typically between 1012 and 1013)
- the number of cells in the human body (more than 1014)
- the number of neuronal connections in the human brain (estimated at 1014)
- in science, Avogadro's number is approximately 6.022 × 1023
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 computer-related quantities are frequently stated in powers of two. Note that 103 = 1000 is very near 210 = 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 N-body problem.
Between 1980 and 2000, hard disk sizes increased from about 10 megabytes (1 × 107) to over 100 gigabytes (1011 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 dictionary-on-disk storing all possible passwords containing up to 40 characters? Assuming each character equals one byte, there are about 2320 such passwords, which is about 2 × 1096. This paper (http://arxiv.org/abs/quant-ph/0110141) points out that if every particle in the universe could be used as part of a huge computer, it could store only about 1090 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 × 1096 seconds, or 2 × 1087 seconds to complete its task, which is about 6 × 1079 years. By contrast, the universe is estimated to be 13.7 billion (1.37 × 1010) 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 10120 operations since the Big Bang. This is trillions of times more computation than is required for our string-displaying 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 string-displaying 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 cipher-breaking technique which requires more than, say, the 10120 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 × 10500 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 240 calculations in a few minutes. A few thousand PCs working for a few years could solve a problem requiring 264 calculations, but no amount of traditional computing power will solve a problem requiring 2128 operations (which is about what would be required to break the 128-bit 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 1079 to 1081, 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 bit-strings 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 × 1018 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 2nd exponent (1000). The 1st 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:
- base-10 exponentiated tower form
- tetrated-scientific 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 number-by-number 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 0-1, 1-10, or 10-1e10:
- In the case of the range 0-1, 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.I50801-100000%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 super-logarithm or hyper-logarithm, defined for all real numbers, also negative numbers. See also Extension of tetration to real numbers.
- The range 10-1e10 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 lower-tower 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/numbers-14.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 second-iterated 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×10865.
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, aleph-null is the cardinality of the infinite set of natural numbers, and aleph-one 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 up-arrow notation / hyper operators / 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.
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
- Hyper-logarithm
- 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://www-users.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