
Who Can Name the Bigger Number? - thisisnotmyname
http://www.scottaaronson.com/writings/bignumbers.html
======
robinhouston
“Who can name the bigger number? Whoever has the deeper paradigm.”

In 2001, David Moews ran a BIGNUM BAKEOFF competition on the comp.lang.c
newsgroup, where each entry had to be a C program (512 non-whitespace
characters or fewer) returning a number from main(). The winner is the program
that returns the largest number, assuming an arbitrarily-large int type.

[http://groups.google.com/group/comp.lang.c/browse_thread/thr...](http://groups.google.com/group/comp.lang.c/browse_thread/thread/1511694ab8570ccc/540218fdfa4b2ab8)

After reading Scott Aaronson's wonderful essay, you won't be surprised to hear
that the contest was won by a theoretical computer scientist, Ralph Loader.
(Second place was taken by Heiner Marxen, who is mentioned in Scott's article
in connection with the Busy Beaver problem.)

Ralph Loader's remarkable program is at
<http://homepages.ihug.co.nz/~suckfish/busy/reduced.c>, and the documented and
unmangled version in <http://homepages.ihug.co.nz/~suckfish/busy/busy.tar.gz>

David Moews' discussion of the entries is at <http://djm.cc/bignum-
results.txt>

~~~
tel
I find it hilarious that three people thought to return the highest possible
number by underflowing unsigned ints (that are being treated as arbitrarily
large ints). It's a funny hack even if it doesn't teach you anything like
Loader's does.

~~~
mseebach
I don't see how that is relevant when the problem assumes an arbitrarily large
int-type. It's trivial to return the largest possible value (INT_MAX) for any
fixed-size int-type, but a such _does not exist_.

Basically, many posters are missing the point that it's a mathematics
challenge, not a C-challenge, which is excusable since it's posted in a
C-group.

~~~
tel
Exactly, which I find hilarious.

------
Eliezer
What I'd want to say here is "the largest number nameable using 1000 symbols
in second-order logic" (not original, I think someone else won a contest that
way). But the fact that someone can ask "Which formulation of second-order
logic?" probably defeats this unless you can also, in those fifteen seconds,
cite a standard formulation of second-order logic and a standard
axiomatization of number in that formulation, otherwise it's an ambiguous
specification. HOL is a standard and formal formulation of higher-order logic
that I can think of in fifteen seconds, but I wouldn't be able to think of a
standard formulation of Peano Arithmetic that was already in HOL.

Actually, now that I think of it, "the largest number nameable using 1000
symbols in HOL plus a successor symbol" might work, since you can define
addition, multiplication, etc. in higher-order logic using only a successor
symbol.

Interesting fact: This is a fundamental jump up from first-order logic, which
is a fundamental jump up from Busy Beaver, and then once you're there, it's
operating at the highest level of abstraction that I know about or have ever
heard of. There are things you can do to make that number bigger - picking a
different ordinal for the order of logic, recursing over how you get the
number of symbols - but they all amount to saying "plus one", and not jumping
to a qualitatively different level of abstraction. Once you abstract over
second-order logic you are, so far as I know, _done_.

~~~
shasta
I don't know what qualifies as a "qualitatively different levels of
abstraction", but for all practical purposes, you're never done. Given a
formal system for building numbers, you have a sequence B(n) of largest
numbers created with n symbols in that formal system. You can _always_ step
outside that formal system and make a construction that leaves someone stuck
in the formal system in the dust. For example, take B(B(n)). You could then
formalize this process of stepping outside of formal systems, only to find
yourself in a new formal system. The only limits on how fast you can "go meta"
are limits of your mind.

~~~
Eliezer
You could always add one to the number, too. Turning B(n) into B(B(n)) is
pretty much the same thing, it just takes B(n) and makes it the base function
of ordinal recursions you already know how to construct. It doesn't jump
outside the system by very much.

Going meta is really hard work. When people think they're "jumping out of the
system" over and over again, they're usually actually playing in a pretty
small sandbox. If you take someone who's naive about going meta and ask them
to construct a large number, they often don't get anywhere close to Ackermann
numbers. They think they're being brilliantly creative and recursing at the
speed of light, while actually spending huge amounts of complexity to create
much smaller numbers than a mathematician could describe in a few lines of
code. Similarly, someone could play around all day with grand hierarchies of
ordinal halting oracles, or "jump out of the system" for a billion years on
end by applying the functions to themselves, and never get anywhere close to
the size of the numbers that you could talk about by making the jump to first-
order logic.

And after you make the jump to second-order logic, I don't know of any more
other jumps like that of comparable size.

~~~
shasta
My point is that if two mathematicians play this game, there is still lots of
room to be clever. Even though both will know the idea of looking at numbers
nameable in a some formal logic, the more clever of the two will beat the one
with fastest handwriting (I'm assuming hours or days - not seconds - to
compete).

------
ars
Dup: <http://news.ycombinator.com/item?id=47408>
<http://news.ycombinator.com/item?id=951095>
<http://news.ycombinator.com/item?id=492615>
<http://news.ycombinator.com/item?id=514955>

~~~
codexon
Very interesting that it was submitted so many times yet only now has it
gotten this many votes.

~~~
ars
A comment with this link did get some interest though:
<http://news.ycombinator.com/item?id=378776>

------
Jun8
Surely not every day, but frequently enough, I read a submission and related
comments on HN and say to myself, "Ahhh, this is why I continue to come to
HN!".

This is definitely one of those.

~~~
Timothee
I have seen it hovering here and there on the front page, and finally opened
it. No regrets, it was probably the best submission I've read here.

------
arethuza
Graham's Number?

<http://en.wikipedia.org/wiki/Graham%27s_number>

~~~
baddox
Let g = Graham's number. Then use Knuth's up arrow notation. Then (and this is
perhaps cheating) use a non-computable function like the busy beaver function,
which grows faster than ANY computable function. That last step may in fact
not be cheating, because it might be possible to prove a lower bound and
therefore prove that it's higher than the opponent's number.

Pretty notation here:

<http://mathbin.net/50035>

~~~
joe_the_user
If the busy beaver function _runs on a computer_ , it is _computable_ , unless
I missed something pretty interesting.

~~~
prodigal_erik
A busy beaver is a Turing machine that runs for more steps than any other
machine (having the same state machine size) but eventually halts (rather than
looping forever). The busy beaver _function_ measures the run times of all
busy beavers, the maximum number of steps you can get out of each state
machine size. Apparently Radó proved this value eventually grows larger than
any computable function.

[http://en.wikipedia.org/wiki/Busy_beaver#Non-
computability_o...](http://en.wikipedia.org/wiki/Busy_beaver#Non-
computability_of_.CE.A3)

------
joe_the_user
One of the fundamental points of Kolmagorov's algorithmic information theory
is that the function for the largest number algorithmically representable by n
bits of information is incomputable.

<http://en.wikipedia.org/wiki/Kolmogorov_complexity>

------
diziet
Something like

(9||||9)!

Using knuth's up arrow notation

<http://en.wikipedia.org/wiki/Knuth%27s_up-arrow_notation>

And a factorial for good measure

~~~
baddox
I certainly demolished your number in this post:
<http://news.ycombinator.com/item?id=1539866>

Also, why use | when you can use ↑? ;)

~~~
diziet
You're right, you've got me certainly beat by unimaginable orders of
magnitude.

How does g↑(sub_g)g compare with BB(g)?

~~~
baddox
I have no idea how they compare. The former is incomprehensible and the latter
is both incomprehensible and non-computable. My intuition tells me the latter
is much larger, because a computer could "easily" calculate the former.

------
exit
> _Be precise enough for any reasonable modern mathematician to determine
> exactly what number you’ve named, by consulting only your card and, if
> necessary, the published literature._

but there isn't enough entropy left before cosmic heat death to evaluate
9^(9^9).

------
spoonboy
Just for fun, here's my shot: The number of steps required to compute the
solution to the travelling salesman problem for each quark of every subset of
every permutation of quarks in the universe in space-time.

~~~
vecter
I'm not sure if quarks have "positions" in the exact sense of the word, so I
don't think there's a metric you could apply here to get distances for which
to solve TSP.

Suppose there was a metric between quarks. To be clear, are you saying: take
all quarks in the universe. Take their powerset P. For each set S in P, create
the complete graph K_{|S|} where edge lengths are distances. Let TSP(x,
K_{|S|}) be the number of steps required to solve TSP. Sum TSP(K_{|S|}) for
all S in P.

Let n be the number of quarks in the universe. The size of the powerset is
2^n. For each S in P, since TSP is solvable in exponential time, we'll upper
bound the number of steps by 2^n. In other words, for each powerset, you're
cost for solving TSP is at most 2^n. Therefore, the number of steps is at most
2^n * 2^n = 2^(2n), which is far smaller than say Ackermann(6, 6).

~~~
spoonboy
Touche.

------
Rhapso
"The traveling salesman problem asks for the shortest route connecting a set
of cities, given the distances between each pair of cities. The rub is that
the number of possible routes grows exponentially with the number of cities."

Is it just me or does the traveling salesman problem have (cities-1)!
solutions? thus it is not exponential? and is in fact far more annoying?

~~~
thefool
Factorial grows faster than exponential.

~~~
Rhapso
This is my point, which I apparently failed at communicating.

~~~
thefool
Oops, I just failed at reading.

As the person below answered, there are less naive ways of doing it. Check
out: <http://www.tsp.gatech.edu/index.html> if you are interested.

------
Avshalom
2 things

1) <http://qntm.org/planar> obviously not the largest number but pretty big.

2) <http://www.ephraimkishon.de/en/my_favorite_stories.htm> The story Jewish
Poker is at least one take on the old joke mentioned in the intro, and a fun
read.

------
rw
Definitely check out his other essays too!

------
rookie
a more interesting challenge would be the biggest number using each of the ten
digits only once.

ready, go.

~~~
sesqu
9876543210

If I'm also allowed an operator, 3↑⁹⁸⁷⁶⁵⁴¹⁰2

~~~
rookie
ha, yes allowed operators, as many as youd like.

~~~
sesqu
Then the best I can come up with on no notice is 2 ↑^(4 ↑^(6 ↑^(8↑^(9↑10)) 7)
5) 3.

That would be trivial to increase substantially by using some other notation
for the hyperoperation, but I'm going with the presumably most familiar one.
I'm sure there are bigger numbers - specifically, Wikipedia mentions Conway
chains, where a→b→c = a ↑^c b, and so 2→3→4→5→6→7→8→9→10 should be quite large
indeed.

~~~
baddox
Excellent! I hadn't thought about it, but at a glance I'm pretty sure your
ordering and grouping does generate the maximal result. However, the parent
comment said as much punctuation as you like, which allows for unbounded
expressions with unary operators like the factorial!

------
dennisgorelik
It looks like many commentators did not bother to read the full article.
Neither did I, but I remember not to use "infinity" and "number of atoms in
universe".

------
lakeeffect
Put the Factorial, exclamation mark after each exponent.

------
noonespecial
/Eagles music, singing/

welcome to the hotel David Hilbert...

------
richieb
Aleph Null?

------
buzzblog
My daughter at bedtime says she's giving me infinity times infinity time
infinity kisses. That's the biggest number, I don't care what any of you math
whizzes have to say about the matter. ... OK, let's call it the best not the
biggest.

~~~
Angostura
It's going to be a long night.

------
tman
a1 = 10^10

a2 = a1^a1

...

a_n = a_(n-1)^a_(n-1)

My number is a_(a_(10^10))

