First page . . . Back to page 2 . . . Forward to page 4 . . . Last page (page 7)


SI Prefixes

("Metric system" prefixes)

The original SI (systeme international, or "Metric" system) in 1793 had only the prefixes kilo, hecto, deca, deci, centi, and milli. In 1795 myria was added but later became deprecated. mega dates from the late 1800's and was officially adopted in France in 1919. During the 1900's kilomega and megamega were used but it was eventually decided these needed their own prefixes3; giga, nano and tera, pico were adopted in 1960, femto and atto in 1964, peta and exa in 1975, and zetta, zepto and yotta, yocto in 1991. These extensions have been added mainly for the convenience of scientists. For example, in 1993 some researchers had to refer to units of 10-21 volts but they didn't yet know about the prefix zepto so they called it "milliattovolt". There have always been fields where very small or very large values are expressed simply as big exponents of 10, or where a field-specific and somewhat arbitrary unit such as the parsec or electron-volt is used. The standard unit of atomic mass (1/12 the mass of a Carbon atom, or roughly the mass of a proton or a neutron) is 1.66×10-27 kg or 1.66 yg (1.66 yoctograms). Quasars have been discovered that are about 125 yottameters away. When volumes or weights are involved the units are even more often found to be insufficient — the Earth weighs about 6000 Yg (6000 yottagrams), and the mass of an electron is about 0.00091 yg (yoctograms). By comparison, the diameter of the Earth and of an atom (both one-dimensional measurements) are both easily handled with the older kilo- and pico- prefixes.

The following "SI prefixes" are deprecated or obsolete: myria, kilomega, and megamega.

The official SI prefix names "peta" and "exa" are probably derived from "pente" and "hexa" (five and six in Greek)3, however, the official BIPM (Bureau International des Poids at Mesures) website does not give an explanation.

"Zetta" and "yotta" are derived from "septo" and "octo", which are quasi- number names. Quoting BIPM:13

The names zepto and zetta are derived from septo suggesting the number seven (the seventh power of 103) and the letter "z" is substituted for the letter "s" to avoid the duplicate use of the letter "s" as a symbol. The names yocto and yotta are derived from octo, suggesting the number eight (the eighth power of 103); the letter "y" is added to avoid the use of the letter "o" as a symbol because it may be confused with the number zero.

If BIPM decides to adopt further prefixes for 1027 and 1030 and their reciprocals 10-27 and 10-30, they will probably adopt something vaguely resembling names for nine and ten for a similar reason — perhaps something like novetta, novemo, decetta and decemo. If so they would almost certainly be assigned two-letter abbreviations such as "No-", "De-", "no-" and "de-" because N-, n- and d- are already used for other prefixes.

Joke, Hoax, and Sincere (but Ad-Hoc) SI Prefix Proposals

The following prefixes have all been exposed as jokes or hoaxes: bronto, cuppa, dea, ento, fito, harpo, hepa, lotta, lotto, nea, otta, revo, syto, tredo, una, xera, zeppo, and zuppa3,27,28,29,33,34. Several of these were perpetuated by Internet rumors (compare two posts by Alex Lopez-Ortiz 4,11), and many go back before widespread use of the Internet12.

One of the earliest examples was apparently a reaction to the silly-sounding and real prefixes yocto and zepto. In 1993, as a joke that was reportedly well received on USENET, Morgan Burke27 proposed harpo for 10-27 and groucho for 10-30 (and therefore harpi for 1027 and grouchi for 1030)29.

In addition, the following are simply bogus ad-hoc personal ideas: luma, lunto, mikto, minga, nekto, nena, ocha, otro, pekro, pepta, quekto, quexa, rimto, rinta, sorta, sotro, treda, trekto, uda, udeka, udeko, unto, vendeka, vendeko, vunda, vunkto, weka, weko, wekta, wekto, xenno, xenta, xona, and xonto10.

Oxford professor Jeff K. Aronson has suggested extending beyond zetta, zepto and yotta, yocto with xenta, xenno, wekta, weko, vendeka, vendeko, udeka, udeko based on the idea that the 'Z' and 'Y' prefixes would continue backwards through the English or modern Latin alphabet.

An essentially equivalent proposal was made by Paul Shuch in a letter to Science News 35, suggesting acto=10-96, atta=1096, etc. through wocto=10-30, wotta=1030, xocto=10-27, and xotta=1027.

Using a similar idea, Jim Blowers10 says:

The pattern here is that we go backwards from the beginning of the alphabet [shouldn't this be "end of the alphabet"? -ed], starting with z and y, and we follow it up with an alteration of the Greek or Latin for the next number. According to this pattern, the next ending ["prefix" -ed] should be xona-, since x comes before y in the alphabet, and 9 is noni- in Latin. Similarly, 1030 should be weka-, since w precedes x and 10 is deka in Greek.

He goes on to list a large number of prefixes starting with Xona-, Weka-, Vunda-, Uda-, Treda-, Sorta-, ... One-letter abbreviations are used if unambiguous, otherwise another letter is added, e.g. TD- for the Treda- prefix. He goes as far as 1063 using an L- prefix, based on the 26-letter "Latin" alphabet used in several European languages including English, although the original classical Latin language had no U or W.

Any of these might be (intentionally of mistakenly) used by others who are sincere, but unaware that the prefix they are using is unofficial, ad-hoc or worse. For example, one reader wrote to me informing me of the usage of Xera- by a Dr. Laurent Alexandre.

Sources

Here is a collection of URLs that are related to the above topics, but which I did not actually use as sources. Most of these are from the beginning of my work on this page (around 1999 or 2000). These pages concern names of large numbers, SI units, and similar things.

(Sources:

Borislav Manolov, Names of large and small numbers, web page.

InterTran English-Latin Translator, via Stars21.

http://www30.brinkster.com/manfear/office/large.html (Also gives names in German and proposes names based on Greek)

http://g42.org/MiscInfo/numbers.html (Much of the same info as on the previous page)

http://www.unc.edu/%7Erowlett/units/large.html (Much of the same info as on the previous page)

http://mathforum.org/library/drmath/view/59155.html (An introduction for kids)

http://www.grammarstation.com/KnowYourMath/numbers_symbols.html (An introduction for kids)

http://www.ex.ac.uk/cimt/dictunit/notesp.htm (Described the SI prefixes for powers of 1024, but now offline)

http://mathworld.wolfram.com/LargeNumber.html

http://journals.iranscience.net:800/www.newscientist.com/www.newscientist.com/lastword/article.jsp@id=lw77 (comments on uses of zetta- and yotta-)

http://www.lewrockwell.com/orig/kinsella6.html (introduction to the SI units)

http://www.plexos.com/256_bit_CPUs_should_be_enough.htm (xona)

http://jimvb.home.mindspring.com/unitsystem.htm (xona)

http://www.omniglot.com/writing/latin.htm (Latin alphabet)

http://www.freezoneearth.org/Prometheus04/otThree/preot3/bignumbers.htm

Wikipedia, List of numbers (Another version that goes up to 10180) )


Ad-hoc Googolisms

Recently there has emerged a smaller but more dedicated community of people who invent many, many names for specific large numbers. These names are similar in spirit to the Ad-hoc Chuquet names; in particular their creators promote the names as if they wish them to become part of the language.

An early and well-known creator is Jonathan Bowers, who makes up a lot of names for examples of every successive fast-growing function in his large numbers system.

myrillion=1030003 micrillion=103000003 (same as Henkle's milli_millillion), killillion=103×103000+3 megillion=103×103000000+3 gigillion=103×103000000000+3 tedakillion=103×103×1042+3 (having run out of SI prefixes) ... giggol = 10100 (described here) giggolplex = 10(10100) trisept = 7(7)7 tridecal = 10(10)10 boogol = 10(100)10 ...

and a ton of names for numbers that are easy to express in his Array Notation, "extended" erray notation, "exploding" arrays, and so on.

Some time after Bowers the Googolgy wiki began, and eventually gained a very large membership and thousands of pages for specific names. Examples:

novopastillion = 10(3×103×1027×1021+3×103×1015×1012+3) named by "Trakaplex")(334).

goomolplexiduex = 10↑↑10↑10↑1000 named by "Username5243"(355).

forcal = 3↑↑↑↑3, the first step in the construction of Graham's number, named by Aarex Tiaokhiao(958).

egisitriplextron = M(M(M(M(10,3),3),3),3) in Aarex's "Hyper-Moser notation" (which is equivalent to the Steinhaus-Moser notation), also named by Aarex Tiaokhiao.

gongulusquadraplex = {10,10 (gongulustriplex) 2} in Jonathan Bowers' "Exploding Array" notation, named by Jonathan Bowers(363).

truchainpribolplex = s(3,3,3,2,4) in "Hyp cos"(597)'s "strong array notation", named by "Hyp cos"(597).

Empiri-titaniprimol = #{1:1:1}((10))*100 in "SuperJedi224"'s "Hyper-Exploding Pound-Star Notation", named by "SuperJedi224"(388).

*godgralgathtothol = E100#^(#^#^##^##)100 in Sbiis Saibian's "Cascading-E notation", named by Sbiis Saibian(6873).

bigrand giaquaxul = (...((200![200,200,200,200])![200,200,200,200])![200,200,200,200]...)![200,200,200,200] in Lawrence Hollom's "Hyperfactorial array notation", named by Lawrence Hollom(548).

trimixommwil = fψ0ψ0ψ0(Ω)))(10) in the Fast-growing hierarchy, named by Denis Maksudov(676).

In nearly all cases the number names come from the person who defined the notation that is used to define the number. This typically happens because the notation systems require extensive explanation with clarifying examples, and the names help make the examples less awkward to present. In most cases, there are patterns used in the names (such as the incorporation of SI prefix syllables), and this makes many of the names only minimally different from each other. Sbiis Saibian is notable for having named thousands of numbers, most of them with a single word (perhaps hyphenated).


Huge Numbers in Idle/Clicker Games

There has emerged a class of games, called "Idle" or "Clicker" games, usually played in a browser. A well-known early example is "Cookie Clicker" by Orteil; another with which I am fairly familiar is Sandcastle Builder by Eternal Density.

These games motivate the player mainly to make some quantity ever larger. Often there is a "score" that continues to grow throughout the game, slowly at first and ever more quickly. Some aspects of human psychology have the effect of making a fixed increase seem smaller when the thing being increased is large. This means that some kind of accelerating growth (such as exponential) is typical of these games. Because of the common property of having gradually increasing values, attained by an endless sequence of small tasks, such games are categorised as "incremental games" (The "Clicker" type place more emphasis on constant interaction, while they "Idle" type place more emphasis on occasional interaction separated by significant gaps during which you can do something else.)

There is a limit to exponential growth in a browser game, and that is usually the IEEE double exponent range, about 10308. To meet the needs of players, the game often bypasses this limit with custom number representations, computational algorithms, and display formats.

Following is a huge list of examples of numbers as they are given by the OmegaNum.js string conversion function, and the same numbers as displayed by the game "LNGI".

OmegaNum toString() format What LNGI displays
5.61578481133173 5.6
20.540217176071135 20.5
2250.034944098859 2250.0
56010.15609280884 56010.2
7397372.903485414 7.40e6
5049077661593.805 5.05e12
2.561343246646974e46 2.56e46
2.21928538852712e475 2.22e475
5.859532521403692e27601 5.86e27601
Starting at 101000000 LNGI starts to show two "e"s: "eAeN"
1.3644550118237122e8422934343 e8.42e9
Above 101010 OmegaNum.js starts to use two "e"s
e5.642797566103958e32 e5.64e32
e2.7278441366807935e1430 e2.73e1430
e1.20454145904267e789854959 ee7.90e8
eee25.95188960622345 ee8.95e25
eee1178.4403671995979 ee2.76e1178
eeee36.13778495665992 eee1.37e36
eeee9067.99275427574 eee9.83e9067
eeeee538.0401948650771 eeee1.10e538
eeeeee129.08930264871205 eeeee1.23e129
eeeeeee1603.6765783434175 eeeeee4.75e1603
A bit before 10↑↑10 OmegaNum.js switches to "(10^)^N A"
(10↑)×8 187198585.9245357 eeeeeeee1.87e8
At 10↑↑10 LNGI starts to display "10^^A"
(10↑)×11 76419.71026046238 10↑↑12.7
(10↑)×15 14616606.361654049 10↑↑16.9
(10↑)×23 23950515.23154178 10↑↑24.9
(10↑)×41 1896658812.4372902 10↑↑43.0
(10↑)×95 83768088903222.52 10↑↑97.1
(10↑)×354 25192.027030210415 10↑↑355.6
(10↑)×3282 1155.4301424268385 10↑↑3283.5
(10↑)×224302 4242397900680629.5 10↑↑224304.1
At 10↑↑1000000 LNGI switches to "10^^AeN"
(10↑)×2327085670 19.12042002945092 10↑↑2.33e9
Probably at 10↑↑10 OmegaNum.js switches to "10^^AeN"
10↑↑1.1547761290692797e20 10↑↑1.15e20
10↑↑4.912083530308172e57 10↑↑4.91e57
10↑↑6.915861721562971e256 10↑↑6.92e256
10↑↑1.3872376875195669e152414860646 10↑↑e1.52e11
At some point OmegaNum.js switches to "10^^eAeN"
10↑↑e1.7260141793537942e161 10↑↑e1.73e161
10↑↑eee22.084105873514044 10↑↑ee1.21e22
10↑↑eee1253149546628454.2 10↑↑eee1.25e15
10↑↑eeeee333.9005120284693 10↑↑eeee7.95e333
10↑↑eeeeeee3640.539667423045 10↑↑eeeeee3.46e3640
At 10↑↑10↑↑10 LNGI starts to display "10^^10^^A"
10↑↑(10↑)×11 1291.409125600338 10↑↑10↑↑12.5
10↑↑(10↑)×18 812.5506680809717 10↑↑10↑↑19.5
10↑↑(10↑)×31 640656.0598405655 10↑↑10↑↑32.8
10↑↑(10↑)×60 4394.193099416276 10↑↑10↑↑61.6
10↑↑(10↑)×128 26.077859686180812 10↑↑10↑↑129.2
10↑↑(10↑)×307 11035.135839482322 10↑↑10↑↑308.6
10↑↑(10↑)×856 247433.47989104336 10↑↑10↑↑857.7
10↑↑(10↑)×2837 2095.0305836373373 10↑↑10↑↑2838.5
10↑↑(10↑)×11494 1347.282314798268 10↑↑10↑↑11495.5
10↑↑(10↑)×58876 2507488.897449033 10↑↑10↑↑58877.8
10↑↑(10↑)×396286 73.6286754437583 10↑↑10↑↑396287.3
10↑↑(10↑)×3665196 7617.702603956094 10↑↑10↑↑3.67e6
10↑↑(10↑)×49065700 1533516485.0761325 10↑↑10↑↑4.91e7
Probably at 10↑↑10↑↑10↑↑10, OmegaNum.js switches to "(10^^)^2 eAeM", which LNGI displays as "10^^10^^eAeM"
(10↑↑)×2 e1.3655146878716995e398653 10↑↑10↑↑e1.37e398653
(10↑↑)×2 (10↑)×27 541.8105947170747 10↑↑10↑↑10↑↑28.4
(10↑↑)×2 (10↑)×493 994.7764538362364 10↑↑10↑↑10↑↑494.5
(10↑↑)×2 (10↑)×16628 8146768.577394664 10↑↑10↑↑10↑↑16629.8
(10↑↑)×2 (10↑)×1160102 53712944678.44723 10↑↑10↑↑10↑↑1.16e6
(10↑↑)×2 (10↑)×189739949 85999460030.09235 10↑↑10↑↑10↑↑1.90e8
(10↑↑)×2 (10↑)×84131192022 95785601787.92583 10↑↑10↑↑10↑↑8.41e10
Sometime in here OmegaNum.js switches to "(10^^)^3 (10^)^N A" which LNGI shows in "E-sharp" notation with three components: EA#N#M
(10↑↑)×3 (10↑)×27 377.4517657883409 E377.45#27#4
(10↑↑)×3 (10↑)×30626 92178.15280096987 E92178.15#30626#4
(10↑↑)×3 (10↑)×157536870 64.83735370403157 E64.84#157536870#4
(10↑↑)×3 (10↑)×4798908946707 38.870008032946494 E38.87#4798908946707#4
(10↑↑)×4 (10↑)×280 125973243081096.62 E125973243081096.63#280#5
(10↑↑)×4 (10↑)×115226613 1180.8072915430716 E1180.81#115226613#5
(10↑↑)×4 (10↑)×748555014838959 16.40635694294389 E16.41#748555014838959#5
(10↑↑)×5 (10↑)×69285 4255863.99536988 E4255864.00#69285#6
(10↑↑)×5 (10↑)×55626610428785 109.51736059793234 E109.52#55626610428785#6
(10↑↑)×6 (10↑)×20179 30870675.67365583 E30870675.67#20179#7
(10↑↑)×7 1.7402725868562512e16 E16.24#1#8
(10↑↑)×7 (10↑)×204362222 21.879072938335568 E21.88#204362222#8
(10↑↑)×8 (10↑)×10 1425793119632.4773 E1425793119632.48#10#9
(10↑↑)×9 3.1522354127263297e19 E19.50#1#10
(10↑↑)×9 (10↑)×7208410987203503 27.4939739307561 E27.49#7208410987203503#10
(10↑↑)×10 (10↑)×145809142823869 16.8653669952411 E16.87#145809142823869#11
(10↑↑)×11 (10↑)×1035711022444611 23.090969672369 E23.09#1035711022444611#12
(10↑↑)×13 1.345189541953242e19 E19.13#1#14
(10↑↑)×14 2.286965820456475e27 E27.36#1#15
(10↑↑)×15 (10↑)×15917716 27.806294753444835 E27.81#15917716#16
(10↑↑)×17 1.5463211873719582e25 E25.19#1#18
(10↑↑)×18 (10↑)×65848054503291 33.98094230838848 E33.98#65848054503291#19
(10↑↑)×20 (10↑)×107400207 30.243464111441167 E30.24#107400207#21
At approximately (10↑↑)×2010 LNGI starts to always show a "1" as the middle piece of the E-sharp depiction, so "EA#N#M" becomes "EA#1#M"; but exceptions exist on both sides of this break-point
(10↑↑)×25 2.30419543765841e20 E20.36#1#26
(10↑↑)×30 5.163205659509522e32 E32.71#1#31
(10↑↑)×36 (10↑)×1930 51.05773577221312 E51.06#1930#37
(10↑↑)×44 2.409618019214488e49 E49.38#1#45
(10↑↑)×54 7.656267966686379e23 E23.88#1#55
(10↑↑)×65 eeeee65.23300231219872 E65.23#5#66
(10↑↑)×80 1.024488544845546e18 E18.01#1#81
(10↑↑)×97 4.3439248838591755e52 E52.64#1#98
(10↑↑)×131 3.307464420988831e18 E18.52#1#132
(10↑↑)×176 2.1348457956876175e63 E63.33#1#177
(10↑↑)×237 2.242081849488398e112 E112.35#1#238
(10↑↑)×320 1.5220892009348403e101 E101.18#1#321
(10↑↑)×432 6.857264406732369e97 E97.84#1#433
(10↑↑)×583 1.4683457835320404e151 E151.17#1#584
(10↑↑)×787 4.073274368563038e239 E239.61#1#788
(10↑↑)×1175 (10↑)×4785243964762587 294.77378129283403 E294.77#4785243964762587#1176
(10↑↑)×3914 9.022373467476987e433 E433.96#1#3915
(10↑↑)×7145 2.4546351268748694e141 E141.39#1#7146
(10↑↑)×32168 1.9407158398308477e31 E31.29#1#32169
(10↑↑)×292329 1.6586762107322917e3225 E3225.22#1#292330
(10↑↑)×3246963 2.138626912761664e5815 E5815.33#1#3246964
(10↑↑)×29508704 1.65441522101291e12174 E12174.22#1#29508705
(10↑↑)×268177952 1.2641813769997594e25084 E25084.10#1#268177953
(10↑↑)×3293039006 4.791701733734738e34614 E34614.68#1#3293039007
(10↑↑)×33085429502 4.778895251222073e26247 E26247.68#1#33085429503
(10↑↑)×300683589834 7.552470451183186e35748 E35748.88#1#300683589835
(10↑↑)×2732641605675 3.9068391425149103e97047 E97047.59#1#2732641605676
(10↑↑)×30352154950884 8.145917538198075e101997 E101997.91#1#30352154950885
(10↑↑)×337129211615624 1.568109075668596e91462 E91462.20#1#337129211615625
(10↑↑)×3063862948548975 3.2762673860266753e195884 E195884.52#1#3063862948548976
(10↑↑)×8354853851398574 1.4844216842350244e212063 E212063.17#1#8354853851398575
At 10↑↑↑(9.007×1015), OmegaNum.js starts to give "10^^^AeM", while LNGI starts to display "EB#1#1#2" where B=log(AeM)
10↑↑↑9.236465440321577e15 E15.97#1#1#2
10↑↑↑1.021110546607274e16 E16.01#1#1#2
10↑↑↑2.410366547154378e19 E19.38#1#1#2
10↑↑↑1.0752555282102454e27 E27.03#1#1#2
10↑↑↑4.803060383841119e68 E68.68#1#1#2
10↑↑↑7.635223029946795e162 E162.88#1#1#2
10↑↑↑8.331114048759408e405 E405.92#1#1#2
10↑↑↑4.053818502636846e1246 E1246.61#1#1#2


Gödel's undecidable sentence

The discipline of formal logic was described by Aristotle around 350 BC — although it was probably developed well before him. He described the syllogism, an inference of truth based on other established truths. For example:

if all integers are real numbers
and all primes are integers
then all primes are real numbers

Around 1850, George Boole refined formal logic by defining more precise symbols, axioms and rules, the result is called boolean algebra and propositional calculus.

Meanwhile, set theory was being developed by Georg Cantor and others.

Then Friedrich Ludwig Gottlob Frege began developing the predicate calculus. He applied existing formalism techniques to set theory and began developing a complete formalized system of arithmetic, symbolic logic, and set theory from basic axioms and inference rules. This work was just being published as Grundgesetze der Arithmetik vol. 2 when Bertrand Russell (a mathematician who was also well-known as a writer) presented Frege with the following paradox:

Consider the class of all classes that are not a member of itself. Is this class a member of itself or not?

This paradox challenged Frege so completely that he had to withdraw his work because its foundation was flawed.

After toppling Frege's work, Bertrand Russell and Alfred North Whitehead began work on a similar and even more massive project, with corrections to the problems in Frege's approach and using some of the foundation axioms of Giuseppe Peano. Their goal was to make it possible to derive every true theorem in number theory by starting with a set of axioms and a set of inference rules, and methodically applying all the inference rules to the axioms and existing theorems to create new theorems. For examples, see the book Gödel, Escher Bach [45].

The technique of deriving all truth by an automatic process is appealing — it suggests the possibility of automation (e.g. by a mechanical or electronic computer) to eliminate human error in discovering proofs. However, from the start there was much doubt about whether it could ever be used to discover every truth in number theory (if it were possible, the technique would have completeness). For one thing, there was the issue of time and algorithmic complexity: the number of theorems that are provable in such a system is infinite, and all but a very very tiny fraction of those theorems are completely useless (true, but useless).

The goal of formalization was not questioned, and was continued across various fields of mathematics, e.g. by Hilbert.

Gödel finally showed that the Russell/Whitehead approach would not achieve completeness, in fact that no (sufficiently powerful) axiomatic system of number theory can prove all statements which are true in that system. He did this by showing how statements, expressions and theorems in a number theory system S could be used to encode its own symbols, axioms and inference rules. He then demonstrated that there exists a statement G in that system which asserts "Statement G cannot be derived through the axioms and inference rules of formal system S.". If G is indeed inferrable, then it is false — and the formal system S is inconsistent. But if G cannot be inferred, then it is true, and exists as an example of a true statement that cannot be inferred, and therefore demonstrates that S is incomplete. Thus, all sufficiently powerful formal systems of number theory are either inconsistent or incomplete.

It is now generally agreed that this phenomenon of incompleteness is a property of all axiomatic systems.


Notes on Skewes Number

The Skewes Numbers concern the distribution of primes, specifically how many primes exist that are below a certain number. The Skewes numbers set an upper bound for the point at which the number of primes ends up being less than the approximation "li(x)". See here for a complete description of the problem.

The following table gives the number of primes less than each power of 10:

n 10n primes
1 10 4
2 100 25
3 1,000 168
4 10,000 1,229
5 100,000 9,592
6 1,000,000 78,498
7 10,000,000 664,579
8 100,000,000 5,761,455
9 1,000,000,000 50,847,534
10 10,000,000,000 455,052,511
11 100,000,000,000 4,118,054,813
12 1,000,000,000,000 37,607,912,018
13 10,000,000,000,000 346,065,536,839
14 100,000,000,000,000 3,204,941,750,802
15 1,000,000,000,000,000 29,844,570,422,669
16 10,000,000,000,000,000 279,238,341,033,925
17 100,000,000,000,000,000 2,623,557,157,654,233
18 1,000,000,000,000,000,000 24,739,954,287,740,860
19 10,000,000,000,000,000,000 234,057,667,276,344,607
20 100,000,000,000,000,000,000 2,220,819,602,560,918,840
21 1,000,000,000,000,000,000,000 21,127,269,486,018,731,928
22 10,000,000,000,000,000,000,000 201,467,286,689,315,906,290

(source: Caldwell)

Beyond about n=12 (and slightly larger values as computers get faster) this table cannot be produced by the direct method of finding each prime and counting. There was sufficient interest in this that, as early as 1867, Kulik had completed a table of the smallest factor of every integer (and therefore, giving all the primes) up to slightly above 100,000,000!

Soon after Kulik's table, Meissel found an indirect way to count the exact number of primes up to far higher numbers. His method was simplified by Lehmer in 1959, then improved by Lagarias, Miller and Odlyzko in 1985, and then improved further by Deleglise and Rivat.

The method has been improved to such an extent that it is actually possible to derive values of pi(x) for really huge values of x like 10100 or 101000. In 2005 Patrick Demichel found the actual point at which the pi(x) vs. Li(x) crossover occurs, 1.397162914×10316. .


Comparing the Graham-Gardner Number to Chained Arrow Numbers

The following three numbers are listed in ascending order:

3→3→64→2
the Graham-Gardner number
3→3→65→2.

First, note the function-based definition of the Graham-Gardner number:

gn(n) = { hy(3,6,3) for n = 1 { { hy(3, gn(n-1)+2, 3) for n > 1   Graham-Gardner = gn(64)

And we will give another similar definition for a function we'll call c3(N):

c3(n) = { 27 for n = 1 { { hy(3, c3(n-1), 3) for n > 1

Here is the expansion process for 3→3→N→2:

3→3→1→2 = 27 = c3(1)

3→3→2→2 = 3→3→(3→3→1→2) = 3→3→c3(1) = hy(3,c3(1),3) = c3(2)

3→3→3→2 = 3→3→(3→3→2→2) = 3→3→c3(2) = hy(3,c3(2),3) = c3(3)

and in general,

3→3→N→2 = c3(N)

Now note that:

c3(1) << gn(1) << c3(2)

c3(2) = hy(3, c3(1), 3) << hy(3, gn(1)+2, 3) = gn(2) << c3(2)

and in general

c3(N) = hy(3, c3(N-1), 3) << hy(3, gn(N-1)+2, 3) = gn(N) << c3(N+1)

therefore,

c3(64) = 3→3→64→2 << gn(64) = Graham-Gardner number << 3→3→65→2 = c3(65)

A reader asked me how 3→3→3→3 compares to these:

3→3→3→3
= 3→3→(3→3→2→3)→2
= 3→3→(3→3→(3→3→1→3)→2)→2
= 3→3→(3→3→27→2)→2
= 3→3→c3(27)→2
= c3(c3(27))

therefore 3→3→3→3 is much bigger than the Graham-Gardner Number.


What Turing and Church Did Not Prove

Turing is often credited with having proven that there are limits to what can be computed by computers, including all conceivable designs of real-world computers. This actually depends a lot on what you mean by computer. Here are some types of computers that a Turing machine cannot emulate:

Each of these has one or more properties that make Turing's argument inapplicable. Usually this is some form of unpredictability on a fundamental level. For the ideal analog computers, Turing's argument does not apply because of the cardinality of the reals It is known that Turing planned to create a limits-to-computability proof for such computers, but that he never did (I suspect it was not because such computers are actually without limit!)


First page . . . Back to page 2 . . . Forward to page 4 . . . Last page (page 7)



Robert Munafo's home pages on HostMDS   © 1996-2022 Robert P. Munafo.
aboutcontact
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License. Details here.
s.27