1 [caption]: xkcq A webcomic of references, send-ups, maths, and large integers1 [caption]: XKCD-MEN ORIGINS1 [caption]: WOLVERINE1 {A graph showing "badassness" on the x axis and "coolness" on the y axis. The origin is labelled "origin". Points are plotted in a range of about 10 to 100 on each axis: Rogue, Jean Grey, Storm, Magneto. A point very near the origin is labelled "Cyclops". The axes are broken by dotted lines and resume with values around a point labelled A(g64, g64). "Wolverine" is plotted on the graph at the intersection of these two values.}1 [caption]: starring1 [caption]: HUGE ACKERMANN

I've had this pun going around in my head for ages. It probably doesn't work so well with an American accent, but some of you will just have to live
with that.

For those of you who don't remember the gory details of xkcd #207 and who don't have an intimate familiarity
with number theory, the Ackermann function is a function of two variables that produces
integer outputs that grow stupidly fast with increasing input parameters. Its definition is actually quite simple, and it relies on the
process of recursion to generate multiple nested copies of itself as you increase the values of the parameters.

To put it more simply, let me give you some example results of the Ackermann function. It's written as A(m,n), where m and n
are non-negative integers.

A(0,0) = 1

A(1,0) = 2

A(2,0) = 3

A(3,0) = 5

A(4,0) = 13

A(5,0) = 65533

A(6,0) = a number too big to write. No, seriously

A(7,0) = an even more insanely big number

Well, that grows pretty fast. What if we up the second parameter?

A(0,1) = 2

A(1,1) = 3

A(2,1) = 5

A(3,1) = 13

A(4,1) = 65533

A(5,1) = a number too big to write, in fact the same number as A(6,0)

The pattern should be obvious there. Changing the second parameter from 0 to 1 just shifts the whole sequence up a notch. What if we make it 2?

Woah! That number is not (quite) too big to write, but it is stupendously big. It has 19729 digits. Dare we try making the second parameter 3?

A(0,3) = 4

A(1,3) = 5

A(2,3) = 9

A(3,3) = 61

A(4,3) = a number with very close to A(4,2) digits.

Let's stop there and think for a bit. A(4,2) has 19729 digits. It's a ridiculously large number. It's more than the total number of atomic particles
(electrons, protons, and neutrons) in the entire observable universe (i.e. within about 13 billion light years of Earth), squared. As you can see,
with 19729 digits, we can actually write out the number A(4,2), but it takes a lot of a page.

A(4,3) is so big it has A(4,2) digits! Just in case you didn't quite get that:

A(4,3) has 20035299304068464649...(I won't repeat all of the rest)...445587895905719156733 digits (give or take a couple).

I'll pause while you pick your brain up off the floor.

Okay, so you get the general idea. If we tried the Ackermann function with inputs like A(10,10), the resulting number would be incredibly, astoundingly,
mind-bogglingly, staggeringly huge. The number of digits in A(10,10) is so big that if you take the number of digits in that number, it
would be too big to write down. In fact, if you took the number of digits in that number, it would still be far too big to write down. If you
went so far as to take the number of digits in (the number of digits in (the number of digits in (the number of digits in A(10,10)))) - it would still
be too big to write down.

Okay. So we know something about the Ackermann function. In this comic, I follow the lead of xkcd by putting the number g64 in as the inputs
to the Ackermann function. What is g64?

g64 is a number called Graham's number. Graham's number is a number that is
so astoundingly big that I despair of communicating to any of you just how ridiculously large it really is. In fact, even though I understand how
Graham's number is defined, I have no conception at all of just how stupefyingly big it is.

For the purposes of describing really huge numbers, the idea of taking the "number of digits of" a number is essentially equivalent to the mathematical
operation of taking a logarithm. (This will make the following discussion all the more impressive to those of you who understand logarithms, and easier
for me to talk about to those of you who don't.) The abbreviation for "logarithm of x" is log(x).

So to an acceptable degree of accuracy: the number of digits in (the number of digits in (the number of digits in (the number of digits in A(10,10))))
= log(log(log(log( A(10,10) )))).

Now I can attempt to convey something of the size of Graham's number.

Graham's number, g64, has too many digits to write out.

log(g64) has too many digits to write out.

log(log(g64)) has too many digits to write out.

log(log(log(g64))) has too many digits to write out.

log(log(log(log(g64)))) has too many digits to write out.

...

log(log(log(... log(log(log(log(g64)))) ...))) has too many digits to write out. Where the number of times the word "log" appears in this expression has too many digits to write out.

log(the number of times the word "log" appears in the above expression) has too many digits to write out.

log(log(the number of times the word "log" appears in the above expression)) has too many digits to write out.

...

log(log(log(... log(log(the number of times the word "log" appears in the above expression)) ...))) has too many digits to write out. Where the number of times the word "log" appears in this expression has too many digits to write out.

You start to get the idea.

Now imagine calling the Ackermann function with Graham's number as the parameters. Yowzer.

Now that you have the idea, you can quite easily go even further, doing stuff like A( A(g64, g64), A(g64, g64)).
Which makes every other number mentioned so far on this page puny by comparison. Heck, the "64" in the symbol for Graham's number is essentially a function
parameter too, and one that makes bigger numbers much, much, much, much, ... (g64 "muches")... much faster than the Ackermann function. Even
simply making g65 dwarfs the number in the first sentence of this paragraph into insignificance. Something like gg64 is
a whole new level of absurdity.

I hope I broke your brain. Because if I didn't break your brain, you didn't really understand the size of the numbers I am trying to get across here. :-)

And the cool thing is that even with numbers this ridiculously large, they're not even close to infinity.