The american mathematician Edward Kasner once asked his nine-year-old nephew to invent a name for a very large number, ten to the power of one hundred; and the boy called it a googol. He thought this was a number to overflow people's minds, being bigger than anything that can ever be put into words. Another mathematician then shot back with Googolplex, and defined it to be 10 to the power of Googol, proving poor old Edward wrong in an instance.
At least I have to admit that this number is truly unbelievable. A Googol is nothing special; the total number of elementary particles in the known universe is about 10 to the power of 80. If this space was packed solid with neutrons, so there was no empty space anywhere, there would be about 10 to the power of 128 particles in it. This is quite a lot more than a Googol. But you simply cannot express the kind of Googolplex's numerical dimension with terms other than "10 to the power of something".
The beginning of Googolplex, in print, looks just like Googol, starting with 1 and a lot of zeroes. But this time, the zeroes are stretching out to infinity and beyond. Well, this is not entirely accurate, of course the number is much less than infinity. The fact alone that it was conceived is a proof of its finiteness.
Let's get real here. Let me show you a little program of mine, and then, in its explanations, try to picture a Googolplex.
The delayed program that's being started in two years therefore overtakes the program started today, and finishes its computation 1.5625*10^85 minus 2 years ahead of the undelayed program.
Of course, this makes it useless to run the program today, because it would only reproduce the already existing output of the program that's being started in the future. We have therefore shown that the program is useless today.
We complete the proof by iteratively using the above mental experiment on itself. It is easily understandable that it doesn't make any sense running the program as long as the computation time exceeds 4 years. A simple calculation shows that this will be not be the case for the next 282 "life cycles", that is, 564 years.
Until then, we can always overtake computation by running the same program two years later and therefore brand an undelayed program execution as useless.
We can summarize our thoughts in the following, now proven, sentence:
But who said we have to print Googolplex in decimal? If we switch to base Googolplex, you can print it simply as 10. (suggested by Paul Dourish dourish@europarc.xerox.com).
However, you will have a hard time convincing a large-enough fraction of the population of your invention so that the name becomes household. The thing about Googolplex is that it is well-enough known to be listed in dictionaries and encyclopaedias, even if only for its entertainment value.
In any case, I've got you beaten. For the record, I define a Frank to be one more than the largest number you can come up with.
You might want to try the program with values up to 10 (which would be 10 to the power of ten billions, resulting in a number of the size ten gigabytes). A modern workstation should do this in less than a day, unless you try to run the output through the screen, in which case screen output would slow the program significatly.
I have tried this value myself, and a local workstation took about 10 hours. In this time, it not only printed the number but also piped it on-the-fly thrice through gzip (I didn't want a 10GB file on disc), and got a file of only 1235 bytes. I have added '.bin' to the filename so that your WWW client won't try to uncompress it.
At least I have to admit that this number is truly unbelievable. A Googol is nothing special; the total number of elementary particles in the known universe is about 10 to the power of 80. If this space was packed solid with neutrons, so there was no empty space anywhere, there would be about 10 to the power of 128 particles in it. This is quite a lot more than a Googol. But you simply cannot express the kind of Googolplex's numerical dimension with terms other than "10 to the power of something".
Note: Or can you? Physicist Don Page mailed me a text with a relatively simple description of how to imagine a value equivalent to Googolplex.In print, a Googol also looks quite uninteresting. It is a 1 followed by 100 zeroes. It's boring. Now a Googolplex has a 1 followed by 10 to the power of 100 zeroes.
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 This is a Googol. See, there's nothing to it.
The beginning of Googolplex, in print, looks just like Googol, starting with 1 and a lot of zeroes. But this time, the zeroes are stretching out to infinity and beyond. Well, this is not entirely accurate, of course the number is much less than infinity. The fact alone that it was conceived is a proof of its finiteness.
Let's get real here. Let me show you a little program of mine, and then, in its explanations, try to picture a Googolplex.
Mindblowing Dimensions
It turned out to be rather simple to write a computer program that actually prints this number, this Googolplex. Because of this simplicity, even I fell for some ideas at first. I thought that I could just feed a Googolplex, generated by my program, to a compressor like gzip, and hoopla, I'd have a handy Googolplex on my hard disk. Then I thought about it some more and found out that, even if compressed to 0.1%, it'd need 10 to the power of 97 bytes. There is simply no chance in downsizing a Googolplex to something handy.The Program
Well, by twisting terms there is a chance to do exactly this, by introducing a generating function. Written in the C programming language, the function is only a couple of lines long. See below for more information on the program.The Proof
However, this program is completely useless, and it is possible to mathematically prove its uselessness. The proof first introduces two corollaries.- Corollary 1
- The computing power of microchips doubles every second year. This statement is also known as "Moore's Law", named after the Intel Co-Founder. It has been empirically shown to be correct for the last 30 years. Actually, the original statement reads "every 18 months," I'm being a little more conservative than that. If you think that the value of two years is incorrect, invent another one. It doesn't make a lot of difference.
- Corollary 2
- At today's speed, the program will run for 3.125*10^85 years. The fastest available desktop computers of today will run the program at a speed that allows the printing of about 10 to the power of 7 digits per second. The average year has roughly 3.2*10^7 seconds, so this machine will print about 3.2*10^14 digits per year. We conclude that this machine will need 3.125*10^85 years to finish printing Googolplex.
The delayed program that's being started in two years therefore overtakes the program started today, and finishes its computation 1.5625*10^85 minus 2 years ahead of the undelayed program.
Of course, this makes it useless to run the program today, because it would only reproduce the already existing output of the program that's being started in the future. We have therefore shown that the program is useless today.
We complete the proof by iteratively using the above mental experiment on itself. It is easily understandable that it doesn't make any sense running the program as long as the computation time exceeds 4 years. A simple calculation shows that this will be not be the case for the next 282 "life cycles", that is, 564 years.
Until then, we can always overtake computation by running the same program two years later and therefore brand an undelayed program execution as useless.
We can summarize our thoughts in the following, now proven, sentence:
The program is useless today, and will be useless for the next 564 years. qed.Lucas Watson (lwatkins@scri.fsu.edu) took a different approach, and pointed out that my program will be useless even in a million years, simply because there isn't enough matter to print a Googolplex on (and this fact is unlikely to change). According to him, this idea originated on Carl Sagan's Cosmos TV show.
But who said we have to print Googolplex in decimal? If we switch to base Googolplex, you can print it simply as 10. (suggested by Paul Dourish dourish@europarc.xerox.com).
The Largest Number?
I frequently get mails from people that challenge the somewhat popular opinion that Googolplex is the largest number by sending me proposals of even bigger numbers. Of course, that "popular opinion" is nonsense: there is no largest number. For example, 2*Googolplex is larger than Googolplex. Its stand-out feature is that it remains the largest number with a common name. With mathematical notation, it's no problem at all to design much larger numbers and to give name to them. By analogy, you could define Googolplexplex to be 10 to the power of Googolplex. Or you could give a name to 10^9^8^7^6^5^4^3^2^1^0 (as an exercise, the proof that this number, using a right-associative exponentiation operator, is larger than Googolplex is left to the reader).However, you will have a hard time convincing a large-enough fraction of the population of your invention so that the name becomes household. The thing about Googolplex is that it is well-enough known to be listed in dictionaries and encyclopaedias, even if only for its entertainment value.
In any case, I've got you beaten. For the record, I define a Frank to be one more than the largest number you can come up with.
The Program (reprise)
If you have a C compiler, you shouldn't have any trouble compiling and running the program. I have even prepared a Windows executable (3kB) for those without a C compiler. You can supply a number x on the command line, and the program will then print 10 to the power of (10 to the power of x). If you don't give a number on the command line, the program will default to "100" and therefore start printing the famous Googolplex.You might want to try the program with values up to 10 (which would be 10 to the power of ten billions, resulting in a number of the size ten gigabytes). A modern workstation should do this in less than a day, unless you try to run the output through the screen, in which case screen output would slow the program significatly.
I have tried this value myself, and a local workstation took about 10 hours. In this time, it not only printed the number but also piped it on-the-fly thrice through gzip (I didn't want a 10GB file on disc), and got a file of only 1235 bytes. I have added '.bin' to the filename so that your WWW client won't try to uncompress it.
Other Big Numbers
You have probably learned by know that a Googolplex is simply too much for you. Here are a few links to other numbers. They all have in common that they're a simple nothing compared to this biggie here, but most of them make a little more sense.- Prime Numbers
- This page from the research lab of the Tennessee University gives you tips for hunting down primes for yourself, or, in lack of a supercomputer, you can simply download the biggest known primes.
- Factorials
- This was one of my pet projects, and I designed a program to work out factorials in parallel on as many workstations as you can get hold of. My current record, the factorial of 1,000,000 (in words, one million) with a mere 5.5 million digits was calculated by 72 machines in about 40 hours. Some German-language documentation is available. But if you want, you can download the undocumented source or the short factorial approximation program.
- Pi and Friends
- Not particularly big, until you skip the decimal point; then, these numbers become pretty impressive and beat the above prime numbers by far.
- Graham and Moser
- After witnessing how easily you can make a name in mathematics just by coining a name for a pointless but huge number, Googolplex was topped off by Graham's Number and the Moser.
No comments:
Post a Comment