| Index: > A B C D E F G H I J K L M N O P Q R S T U V W X Y Z |
|
|||||
| First Prev [ 1 2 3 4 ] Next Last |
Large numbers are numbers that are large compared with the numbers used in everyday life. Very large numbers often occur in fields such as mathematics, cosmology and cryptography. Sometimes people refer to numbers as being "astronomically large". However, mathematically it is easy to define numbers that are much larger than occur even in astronomy.
Large numbers are often found in science, and scientific notation was created to handle both these large numbers and also very small numbers. 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 the reader the effort and hazard of counting a long string of zeros to see how large the number is.
Adding a 0 to a large number multiplies it by to: 100 is ten 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 × 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.
Some large numbers apply to things in the everyday world.
Examples of large numbers describing everyday real-world objects are:
Other examples are given in Orders of magnitude (numbers).
First, a rule of thumb for converting between scientific notation and powers of two, since computer-related quantities are frequently stated in powers of two. Since the logarithm of 10 in base 2 is a little more than 3, multiplying a scientific notation exponent by 3 gives its approximate value as an exponent with a base of 2. For example, 103 (1000) is somewhere in the neighborhood of 29 (512). (But remember that when dealing with very large numbers, such "neighborhoods" will themselves be quite large).
Between 1980 and 2000, hard disk sizes increased from about 10 megabytes (1 × 107) to over 100 gigabytes (1 × 1011). A 100 gigabyte disk could store the 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 our dictionary would require.
Of course, even if computers can't store all possible 40 character strings, they can easily 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 "intractible" 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.
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 naive 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 2004 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 computerMolecule of alanine used in NMR implementation of error correction. Qubits are implemented by spin states of carbon atoms. A quantum computer is any device for computation that makes direct use of distinctively quantum mechanical phenomena, such as superps may allow certain problems to become feasible, but as of 2004 it is far too soon to tell.