Large numbers

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Patrick (talk | contribs) at 10:08, 17 July 2007 (→‎Systematically creating ever faster increasing sequences). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

"Big numbers" redirects here. For the comic book series, see Big Numbers. For the V'ənen Taut people and language, see Big Nambas.
For the naming of large numbers in English, see names of large numbers.

Large numbers are numbers that are significantly larger than those ordinarily used in everyday life, for instance in simple counting or in monetary transactions. 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.

Using scientific notation to handle large and small numbers

Scientific notation was created to handle the wide range of values which 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.000 000 001. Writing 109 instead of nine zeros saves readers the effort and hazard of counting a long series of zeros to see how large the number is.

Adding a 0 at 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.

Large numbers in the everyday world

Examples of large numbers describing everyday real-world objects are:

  • the number of bits on a computer hard disk (as of 2006, typically about 1012, 125 GB)
  • the number of cells in the human body (more than 1014)
  • the number of neuronal connections in the human brain (estimated at 1014)
  • Avogadro's number (i.e. the number of atoms in 12 grams of carbon-12, approximately 6.022 × 1023)

Astronomically large numbers

Other large numbers, as regards length and time, are found in astronomy and cosmology. For example, the current Big Bang model of the Universe suggests that it is 13.7 billion years (4.3 × 1017 seconds) old, and that the observable universe is 78 billion light years across (7.4 × 1026 metres), and contains about 5 × 1022 stars, organized into around 80 billion galaxies. There are about 1080 atoms in the observable universe.

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.

Computers 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 to 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 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 such a dictionary would require.

Still, computers can easily be programmed to start creating and displaying all possible 40-character passwords one at a time. Such a program could be left to 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. 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 displaying all 40-character passwords, but computing all 50 character passwords would outstrip the estimated computational potential of the entire universe.

Problems like this 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 described earlier, 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.

Such limits are an advantage in cryptography, since any cipher-breaking technique which requires more than, say, the 10120 operations mentioned before will never be feasible. Such ciphers must be broken by finding efficient techniques unknown to the cipher's designer. Likewise, much of the research throughout all branches of computer science focuses on finding 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 have practical and theoretical challenges which may never be overcome.

Examples

  • (10,000,000,000), called "10 billion" in the U.S., or (traditionally, but now rarely) 10,000 million in the U.K.
  • googol = (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)
  • googolplex = It is the number of states a system can be in that consists of 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 googol particles, each of which can be in 10 states, or a system of 3.32 googol particles, each of which has 2 possible states.
  • centillion = or , depending on number naming system
  • Skewes' numbers: the first is ca. , the second

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

Compare:

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 , 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 (). The base number only supports a factor of 1.00016 in the final exponent (). This clearly shows the importance of the highest exponent in the stack.

Systematically creating ever faster increasing sequences

Let a strictly increasing integer sequence (n≥1) be given (written as a function for conveniently writing the functional powers), with . Then a sequence of sequences can be found by , from which we can select the "cross-sequence" (another number instead of 10 could also be used; it has to be more than 1, and if it has to be more than 2 to get an increasing sequence).

Together this is a process of creating a new sequence from a given one. This can also be repeated, and again we can select from the matrix of numbers a single sequence, by taking the 10th element of each. We can apply the same whole process again and again.

Starting from this process corresponds to adding an element 10 in the Conway chain before the variable n, which is at the end of the chain: we get , and the new sequence selected from the matrix is . (See also Knuth's up-arrow notation and Conway chained arrow notation). Alternatively, selecting the "cross-sequence" , we get , so the sequence is only shifted one position.

Repeating this process we get for successive values of n, and selecting k=10 we get a single sequence .

Repeating this whole process we get ever longer chains. Selecting n=10 we get the sequence of (10→10), (10→10→10), (10→10→10→10),... This can be used as starting sequence to apply the process again, etc. Even the value for this sequence is already a Conway chain of length 10 billion plus one.

Each sequence in this whole process can be identified by its order type in the process:

  • (10→nk) is the sequence with index n with order type k - 1
  • (10→10→nk) is the sequence with index n with order type ω + k - 1
  • (10→10→10→nk) is the sequence with index n with order type 2ω + k - 1
  • (10→10), (10→10→10), (10→10→10→10),... is the sequence with order type ω²

In a similar way this can be continued for all order types less than ε0 (epsilon nought); thus we get a set of sequences, well-ordered by the procedure of construction, with order type ε0. For example, the sequence with order type can be constructed by successively taking the 10th element of the sequences with order type . It is like transfinite recursion, but, as said, only for order types less than ε0. For example, this procedure defines for the order type a particular, very rapidly increasing, sequence of integers, and to specify a particular large integer, we can refer e.g. to the 37th element in this sequence.

Summarizing: We have integer sequences with 0 ≤ x < ε0 (with ordinal numbers as index specifying the sequence, we start them from 0 now, although the elements in the sequence still have an index counting from 1):

  • .

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.

Scientific notation with the mantissa between 1 and 10 positions any number with respect to the numbers , with the mantissa providing the detail where between two consecutive powers the number is positioned. Numeric order is lexicographical order with respect to the pair (n, mantissa). The mantissa is irrelevant if n is not given exactly.

Tetration with base 10 gives the sequence , the power towers of numbers 10, where denotes a functional power of the function (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 accurately, numbers in between can be expressed in the form , i.e., with a power tower of numbers 10, with a regular number at the top, possibly in scientific notation, e.g. , a number between and (if the exponent quite at the top is between 10 and , 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 can be used. Various names are used for this representation:

  • base-10 exponentiated tower form
  • tetrated-scientific notation
  • incomplete (power) tower

The notation 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–1010:

  • In the case of the range 0–1, an even shorter notation is (here for googolplex) like 10^^3.301 (proposed by William Elliot). 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:

(between and )

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 to get a number between 1 and 10. Thusly, the number is between and . As explained, a more accurate 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

I.e., if a number x is too large for a representation we can make the power tower one higher, replacing x by log10x, 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 we can use the double-arrow notation, e.g. . If the value after the double arrow is a very large number itself, the above can recursively be applied to that value.

Examples:

(between and )
(between and )

Similarly to the above, if the exponent of is not exactly given then giving a value at the right does not make sense, and we can, instead of using the power notation of , add 1 to the exponent of , so we get e.g. .

If the exponent of 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 we can, instead of using the power notation of , use the triple arrow operator, e.g. .

If the right-hand argument of the triple arrow operator is large the above applies to it, so we have e.g. (between and ). This can be done recursively, so we can have a power of the triple arrow operator.

We can proceed with operators with higher numbers of arrows, written .

Compare this notation with the hyper operator and the Conway chained arrow notation:

= ( abn ) = hyper(an + 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): . For example:

= ( 10 → ( 10 → ( 10 → b → 2 ) → 2 ) → 2 )

and only in special cases the long nested chain notation is reduced; for b = 1 we get:

= ( 10 → 3 → 3 )

Since the b can also be very large, in general we write a number with a sequence of powers with decreasing values of n (with exactly given integer exponents ) with at the end a number in ordinary scientific notation. Whenever a is too large to be given exactly, the value of is increased by 1 and everything to the right of is rewritten.

For describing numbers approximately, deviations from the decreasing order of values of n are not needed. For example, , and . Thus we have 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 acts. We can simply use a standard value at the right, say 10, and the expression reduces to with an approximate n. For such numbers the advantage of using the upward arrow notation no longer applies, and we can also use the chain notation.

The above can be applied recursively for this n, so we get the notation in the superscript of the first arrow, etc., or we have a nested chain notation, e.g.:

(10 → 10 → (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 = (10 → 10 → n), these levels become functional powers of f, allowing us to write a number in the form where m is given exactly and n is an integer which may or may not be given exactly (for the example: . If n is large we can use any of the above for expressing it. The "roundest" of these numbers are those of the form fm(1) = (10→10→m→2). For example,

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 , but also .

If m in is too large to give exactly we can 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 these levels become functional powers of g, allowing us to write a number in the form where m is given exactly and n is an integer which may or may not be given exactly. We have (10→10→m→3) = gm(1). If n is large we can use any of the above for expressing it. Similarly we can introduce a function h, etc. If we need many such functions we can better number them instead of using a new letter every time, e.g. as a subscript, so we get numbers of the form 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., we have (10→10→nk) = . If n is large we can use any of the above for expressing it. Thus we get a nesting of forms where going inward the k decreases, and with as inner argument a sequence of powers 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 =(10→10→10→n) with an approximate n. Note that the process of going from the sequence =(10→n) to the sequence =(10→10→n) is very similar to going from the latter to the sequence =(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 , nested in lexicographical order with q the most significant number, but with decreasing order for q and for k; as inner argument we have a sequence of powers 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 we can describe how large it is by the length of that chain, for example only using elements 10 in the chain; in other words, we specify its position in the sequence 10, 10→10, 10→10→10, .. If even the position in the sequence is a large number we can apply the same techniques again for that.

Examples of numbers, in numerical order

  • ( 1 → Y ) = 1 for any subchain Y
  • ( 2 → 2 → Y ) = 4 for any subchain Y
  • = ( 2 → 3 → 2 ) = 16
  • = ( 3 → 2 → 2 ) = 27
  • 44 = ( 4 → 2 → 2 ) = 256
  • 55 = ( 5 → 2 → 2 ) = 3125
  • 66 = ( 6 → 2 → 2 ) = 46,656
  • = ( 2 → 3 → 3 ) = ( 2 → 4 → 2 ) = 65,536
  • 77 = ( 7 → 2 → 2 ) = 823,543
  • 88 = ( 8 → 2 → 2 ) = 16,777,216
  • 99 = ( 9 → 2 → 2 ) = 387,420,489
  • 1010 = ( 10 → 2 → 2 ) = 10,000,000,000
  • = ( 3 → 3 → 2 ) = ( 3 → 2 → 3 ) = 7,625,597,484,987
  • googol =
  • = ( 4 → 3 → 2 ) =
  • ( 2 → 5 → 2 ) =
  • = (10 → 3 → 2)
  • = ( 3 → 4 → 2 ) =
  • googolplex =
  • ( 2 → 6 → 2 ) =
  • = ( 10 → 4 → 2 )
  • ( 2 → 7 → 2 ) =
  • = ( 10 → 5 → 2 )
  • = ( 10 → 6 → 2 )
  • = ( 10 → 7 → 2 )
  • = ( 10 → 8 → 2 )
  • = ( 10 → 9 → 2 )
  • = ( 10 → 2 → 3 ) = ( 10 → 10 → 2 )
  • ( 2 → 3 → 4 ) = ( 2 → 4 → 3 ) = ( 2 → 65,536 → 2 )
  • = ( 10 → 3 → 3 )
  • = ( 10 → 4 → 3 )
  • = ( 10 → 5 → 3 )
  • = ( 10 → 6 → 3 )
  • = ( 10 → 7 → 3 )
  • = ( 10 → 8 → 3 )
  • = ( 10 → 9 → 3 )
  • = ( 10 → 2 → 4 ) = ( 10 → 10 → 3 )
  • = (10 → 3 → 4)
  • = ( 4 → 4 → 4 )
  • = ( 10 → 4 → 4 )
  • = ( 10 → 5 → 4 )
  • = ( 10 → 6 → 4 )
  • = ( 10 → 7 → 4 )
  • = ( 10 → 8 → 4 )
  • = ( 10 → 9 → 4 )
  • = ( 10 → 2 → 5 ) = ( 10 → 10 → 4 )
  • ( 2 → 3 → 2 → 2 ) = ( 2 → 3 → 8 )
  • ( 3 → 2 → 2 → 2 ) = ( 3 → 2 → 9 ) = ( 3 → 3 → 8 )
  • ( 10 → 10 → 10 ) = ( 10 → 2 → 11 )
  • ( 10 → 2 → 2 → 2 ) = ( 10 → 2 → 100 )
  • ( 10 → 10 → 2 → 2 ) = ( 10 → 2 → ) =
  • ( 10 → 10 → )
  • ( 10 → 10 → 3 → 2 ) = (10 → 10 → (10 → 10 → ) ) =
  • ( 10 → 10 → 10 → 2 )
  • ( 10 → 10 → 64 → 2 )
  • Graham's number[1]
  • ( 10 → 10 → 65 → 2 )
  • ( 10 → 10 → 10 → 3 )

Comparison of base values

The following illustrates the effect of a base different from 10, base 100. It also illustrates representations of numbers, and the arithmetic.

, with base 10 the exponent is doubled.

, ditto.

, the highest exponent is very little more than doubled.

  • (thus if n is large it seems fair to say that is "approximately equal to" )
  • (compare ; thus if n is large it seems fair to say that is "approximately equal to" )
  • (compare )
  • (compare )
  • (compare ; if n is large this is "approximately" equal)

Accuracy

Note that for a number , one unit change in n changes the result by a factor 10. In a number like , 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 too large or too small. This seems like 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

and

The relative error is

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 in the logarithms is only 10%.

The point is that exponential functions magnify relative errors greatly – if a and b have small relative error,

and

may not have small relative error, and

and

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

and

to be "close in magnitude". The relative error between these two numbers is large, and the relative error between their logarithms is still large; however, the relative error in their second-iterated logarithms is small:

and

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.

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 (see e.g. the computation of mega) and also . Thus , see table.

Large numbers in some noncomputable sequences

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 (sequence A028444 in the OEIS). Σ(5) is not known but is definitely ≥ 4098. Σ(6) is at least 1.29×10865.

Some of the work by Harvey Friedman also involve sequences that grow faster than any computable function.[2]

Infinite numbers

Although all these numbers above are very large, they are all still finite. Certain 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. is the cardinality of the reals. The proposition that is known as the continuum hypothesis.

Notations

Some notations for extremely large numbers:

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.

See also

Notes and references

  1. ^ regarding the comparison with the previous value: , so starting the 64 steps with 1 instead of 4 more than compensates for replacing the numbers 3 by 10
  2. ^ [1]