The Clarkkkkson vs. the xkcd Number

I just stumbled upon this webpage in which some kid (years ago, presumably in high school) who uses odd slang defined a huge number by putting various operators together and making recursive call after recursive call. He supposes that this is the biggest number anyone’s ever bothered to concisely define. My intuition is that A(g64, g64) (feel free to call it the xkcd number) is bigger. However, intuition is completely useless in this kind of question.

The Clarkkkkson defined:

http://lab6.com/old/school/yearbook/clarkkkkson.html

(And the xkcd number is the result of the Ackermann function with Graham’s Number as both the arguments, as defined in this comic.)

Anyone want to take a crack at setting up some correspondences and demonstrating which is bigger — The Clarkkkkson or the xkcd number?

117 Responses to “The Clarkkkkson vs. the xkcd Number”

  1. digitrev Says:

    Umm, hate to be a bother, but what is the actual xkcd number? Rather, can you define it in a slightly more precise way, or link to something that can?

  2. xkcd Says:

    Sure, done. (It was first defined in panel #3 of Monday’s comic.)

  3. Peter Says:

    If you don’t know what the Graham number is or what the Ackermann function is, you can use Wikipedia (like I did) to learn what they are.

    I feel like the xkcd number would be bigger, but I think to really be sure, we should evalute both of them and compare. Now if we can just get the attention of Chuck Norris….

  4. xkcd Says:

    I mean, the first thing seems like it would be just expressing the hyper function thingy in Knuth arrow notation, then you can draw a relation between the first steps of the Clarkkkkson and Graham’s Number. I am guessing the Clarkkkkson is bigger than Graham’s Number, but it would be a starting point.

  5. Johnicholas Hines Says:

    Wikipedia claims that Ackermann(x, y) is hyper(2, m, n + 3) − 3.
    Wikipedia also claims that Graham’s number is:
    Define f(n) = hyper(3,n+2,3) = 3→3→n, then, using functional powers, G=f 64(4).
    So we could build a moderately large, yet feasible, tree of hyper operators to define the xkcd number in terms of hyper operators.

    Wikipedia’s hyper operator is the same as Clarkson’s hypf. I suspect they’ve both been reading the same primary sources.

    Clarkson’s “ck” function builds trees of hyper operators, so it could easily build a bigger tree - note I didn’t say bigger number - than the xkcd number.

    However, K, which is the starting point of the actual “number” that Clarkson wanted to define, is a function of time. Therefore “the clarkkkkson” is also a function of time.

    What does it mean for a constant to be compared in size to a function of time? They’re incomparable. And if you pinned down a date and asked “Is the Clarkkkkson of that date larger or smaller than the xkcd number?” I still wouldn’t know, because though the clarkkkkson undoubtedly has a larger tree, it’s not the size of the hyper operator tree, its the shape that matters.

  6. Ben Nesson Says:

    How about if you’re feeling bad about it, we can just say (and I’m using _’s for subscripts, because I don’t know a cleaner way to do it) A(g_64, g_64) is xkcd_1, A(g_g_64, g_g_64) is xkcd_2, and so on.

    And then if you’re feeling extra silly, we can throw in xkcd_xkcd_1, or xkcd_xkcd_xkcd_1.

    It’s fun to pile ridiculous functions on top of each other.

  7. Ben Nesson Says:

    Can I also just note that Ackermann also came up with my favorite sequence, Ackermann numbers? I love a sequence that goes 1, 4, a number incomprehensively vast.

  8. xkcd Says:

    Johnicholas Hines: Yeah, I was assuming we were just using K from some particular time around when this was written. I’m happy with anything between a googol and 10^googol. If the answer depends on K that sensitively, we can always just look for the dividing line.

  9. Kaoru Says:

    The creator of the Clarkkkkson number claims:

    …you’re not allowed to use a previously defined number, unless you defined it. And you didn’t. So you can’t.

    So perhaps the xkcd number being defined in terms of Graham’s number is against some kind of rules? :P

  10. Hk Says:

    Well, how do you define “defining a number”?

    In doubt, I can say I just use G+1 as my number and thats my very own, defined large number.
    If I am not allowed to do this, nothing is possible, because neither of us has defined any set of number, like the complex numbers. Thus, we all use predefined numbers and go down.

  11. Martijn Says:

    Since The Clarkkkkson is a function of time and the xkcd Number is a constant, and since the question is already pretty hard simply because of the sheer size of the numbers, why don’t we change the original question to:

    For what moment in time does The Clarkkkkson equal the xkcd Number?

    Also, I think it’s interesting a question can become this hard simply because it’s about really big numbers.

    There’s also http://en.wikipedia.org/wiki/Large_numbers

    M.

  12. Carlo Says:

    What better input for the fastest-growing mathematical function, but the largest number ever seriously used in mathematics?

    Whichever one is larger, it’s clear that the xkcd number has more digits than the number of particles in Graham’s number of universes! Now that’s some distinction.

    @Martijn: It’s probable that they will never be equal, and at one point The Clarkkkkson will leap dramatically in size to surpass the xkcd number. The problem is that this might have already happened, or perhaps might not happen until after the heat death of the universe. We’re not sure which.

  13. Sexistential Says:

    But if one can generalize every single function Clarkkkkson uses to be defined on the real numbers, including the number of recursions, it’s possible to render the Clarkkkkson function continuous and thus (theoretically) to know at what point(in the domain of positive reals) XKCD is equal to it. If it’s continuous at every point, and it diverges as t approaches infinity, the IVT means that it must equal XKCD at some point. Right? BTW, for the number of recursions to be quadratic, say (5/4)F=1(C) where (1)G=G, define it maybe to be C(C(C(C(x))))=F(F(F(F(F(x))))) and then define the real arguments to be the limit of a convergent sequence of quadratic arguments. The gamma function provides an intuitive answer for generalizing the factorials, and for Kappa squaring, one could use the obvious K(0)^(2^t)=K(T), etc.

    DISCLAIMER: I could be totally wrong. Don’t hate the player, hate the name.

  14. Matthew O'Connor Says:

    Scott Aaronson posted some thoughts on big numbers. He doesn’t mention the Clarkkkkson, but he easily leaves the Ackermann function in the dust. See:

    http://www.scottaaronson.com/writings/bignumbers.html

  15. Martin Says:

    So…who wants to turn this into a distributed computing project?

    Anyone?

  16. Jennifer Says:

    It’s nice to know that I’m not the only one in the world who creates floor tile rules… I seriously thought I was the only one

  17. Sexistential Says:

    Uhh, I meant to say rational where I said quadratic. I’ve been reading a lot of math recently and so I thought Q. The rest is history.

  18. Bob Says:

    From what I read in that page it looks like the Clarkkkkson number is continuously growing. It uses kappa which is a number that has been squared every day for 10 or so years, right?

  19. Shaun Says:

    After reading the comic the other day I decided to read up on the ackerman function. I realized what the problem was with it when I got a stack overflow error with A(4,3). I had gone past the maximum depth of 16000 recursions(I forget, but it was in lispworks pro).

    That said. I would have to suggest that the bigger number may not be A(G64,G64), but the number of recursions that are needed to solve A(G64,G64).

    I would have to presume that no matter how fast the the return values of the ackerman function increase the number of recursions needed to arrive at the answer will be much higher.

    The really tricky thing here would be to figure out how to find the exact number of recursive calls it would take to solve any particular input to the ackerman function without running it and keeping a count of how many times the function gets called.

  20. Martijn Says:

    @Shaun: Did you use any form of memoization or dynamic programming?

  21. Sebastian Says:

    Can’t you, you know, multiply them and add one? I think that would be bigger. It would also be a lot easier.

  22. Jeff Says:

    @Martijn: using dynamic programming to help compute the Ackermann function is kind of like using a crowbar as a lever for picking up the Himalayas rather than just picking it up. We’ll never, ever, ever be able to compute A(4, 3).

  23. Silas Says:

    @Jeff: Actually, using dynamic programming is more like creating a container an order of magnitude smaller than the Himalayas, and then creating a scale model in the container ;). However, I really don’t think that the computation of A(4,3) is provably equivalent to the halting problem (I could be wrong), so it is possible to compute it, possibly on a quantum computer.

  24. Matt Mullen Says:

    Shaun: When stack overflow gets you down, it’s time to remove recursion.

    I agree with previous that A(4,3) isn’t going to work on PCs unless you have a large number library to assist. …but recursion removal is a handy tool to have at your disposal.

    If the stack can’t handle your recursive calls, make your own dynamic stack with a linked list and just let your function iterate, pushing previous states on to your stack and popping them off when necessary. Then you’re limited not by OS stack size, but by available physical & virtual memory.

    This guy explains it in some of his popular books:

    http://www.cs.princeton.edu/~rs/

  25. Matt Mullen Says:

    A big number library could help us solve this.

    http://www.openssl.org/docs/crypto/bn.html

    This library claims to perform arithmetic operations on integers of arbitrary size.

  26. The Missing Link Says:

    Well, it’d certainly help if the ck(…) function were well-defined, because our good friend… you know… doesn’t.

    Here’s definition one:
    ============
    … but that isn’t all. Another function is used. The Clarkkkkson function ck() is an extension of the hyperfactorial function. It goes like this:

    ck(class, operator, number, repeats)

    The repeats part means how many times the answer is fed back into the hypf() function, for example:

    ck(1,2,4,2) =
    hypf(1,2,4) = 4! * 3! * 2! = 288
    hypf(1,2,288) = 288! * 287! * 286! ……… 3! * 2! = ??????
    ============
    What we get from this is that ck(c, o, n, r) is defined as:

    hypf(c, o, n) — if r = 1, or
    ck(c, o, hypf(c, o, n), r - 1) — if r > 1

    However, then he describes it another way:
    ============
    The 288 from the first hypf() is fed into the second hypf(). Only two hypf()’s are used, because we are only repeating twice. If we went even to three repeats, the answer would be uncomputable (probably). So get ready for the big one. The Clarkkkkson is worked out like this:

    ck(K,K,K,K) = A1 1

    The latter of the two is, of course, CLEARLY bigger, and so that’s probably what he was truly driving at. But if this guy was a serious mathematician at all, he would have caught that error in logic. So in truth, I’m not certain even he knows what he’s talking about, so whether his number is the “largest in the world” or not… well, I’m betting against it, especially since the guy has never done his homework since 1998. ;)

  27. The Missing Link Says:

    Huh, it cut off my results at some point — Darn HTML markup throwing a comment in there:

    Anyway, the second definition is ck(c, o, n, r) =
    hypf(c, o, n) — if r = 1, or
    ck(hypf(c, o, n), hypf(c, o, n), hypf(c, o, n), r - 1) — if r > 1

  28. ekim Says:

    So the definition of the function gets a little messed up at the end when Clarkson says “ck(K,K,K,K)=A_1, ck(A_1,A_1,A_1,A_1)=A_2, … until you get A_K”. What he means to say is clearly “ck(K,K,K,K)=A_K where A_1=hypf(K,K,K), A_2=hypf(K,K,A_1), etc”

    Someone should let the poor kid know he fucked it up at the finish.

    Anyhow, assuming what he meant for it to mean, A(g_64,g_64) is still vastly larger. The general idea to show this is just upper-bounding (terribly, but still totally good enough) ck(K,K,K,K)

    The constant that he uses, K, is quite small compared to the numbers we’re looking at. K

  29. ekim Says:

    (ick. using gt and lt in html… also, it looks like Missing Link beat me to some of this. Including the HTML screwing things up thing.)

    The constant that he uses, K, is quite small compared to the numbers we’re looking at. K < 2^(2^3650) (which it will roughly equal at the ten year mark).
    Order-n hyperfactorial is strictly smaller than order-n hyper, ( so k(!n) < k(^n)k ), which means that hypf(p,n,k) < (k(^p)k) (^n+1) k
    which itself is much much less than k (^n+p+1) k
    which equals k (^n+p+2) 2

    so for ck(K,K,K,K):
    A_1 << K (^2K+2) 2
    A_2 << (K (^2K+2) 2) (^2K+2) 2

  30. ekim Says:

    (comment deletion would be a handy trick)

    so for ck(K,K,K,K):
    A_1 << K (^2K+2) 2
    A_2 << (K (^2K+2) 2) (^2K+2) 2 < K ^ (4K+5) 2
    so A_n << K (^ [2^n * (K +3)) 2

    ck(K,K,K,K), then, is roughly a [K * 2^K]-order hyper operation, so less than a 2^2^2^2^12 order hyper operation, which is, again, less than a (2(^8)2)-order hyper operation.

    A(g_64,g_64) looks like taking a g_64-order, so 3(^64)3-order, hyper.

  31. Nicolas Ward Says:

    My middle school had these hideous brown tiles… but in various places, broken tiles had been replaced with hideous tan tiles. Naturally, the tan tiles were laser turrets that made the rows and columns of tiles in all four directions, out to the next wall, result in death. There weren’t enough broken tiles to completely invalidate entire hallways, so you just had to remember which columns were safe to walk along, and then be sure to step over the invalidated rows.

  32. NoahKing Says:

    An interestingly applicable link:

    Who can name the bigger number?

  33. Lothar Says:

    The Clarkkkkson site uses the lower hyper operator, so I’m not even sure if this number is as big as Graham’s. The class-n factorial is pathetic compared to the hyper operator. You can bound it above with LOT’S of room to move by realizing n!

  34. Lothar Says:

    Hmm… my comment got cut off as soon as I used a less than sign. Will this work now?

    n!

  35. Lothar Says:

    Egad, I can’t be bothered to do the html equivalents &lt; of <. Screw this!

  36. Duke B.G. Says:

    both that Clarkkkson’s stuff and Ackermann function and Conway chained arrow notation are nothing more than recursion, and i would say last two ways of getting large numbers have much more style and scientifical prestige than first one. thus xkcd number being more prestigios. what would be interesting to do is try to note xkcd number in Conway notation (find bounds, as it won’t be presented strictly)

    and about large numbers really used in solving matematical problems take a look for example at Skewes’ number. well all articles in http://en.wikipedia.org/wiki/Category:Large_numbers are those to read regarding these questions

  37. Nick B Says:

    Also notice that in the clarkkkkson website, the author incorrectly defines 4^^5 = 1.34 * 10^154, as he uses the incorrect notation for repeated exponentiation, that is:

    (((4^4)^4)^4)^4 = 4^256

    where the correct version is

    4^(4^(4^(4^4))) = 4^(4^(4^256))

    which of course is vastly bigger.

    See http://en.wikipedia.org/wiki/Tetration for a nicely formatted explanation!

    I’m an applied mathematician by trade so I’m not so used to the concept of big numbers, but I’m intrigued by this problem and will look into it, much to the detriment of the actual real work I should be doing! :-)

  38. Bryce Says:

    Way too much notational abuse going on, there’s a reason mathematicians use the function notation at times. Which would be why he screwed up so many calculations, the author is confused by his abuse of notation.

    A grasp of recursive definitions would go a long way to clearing up the abuse.

  39. Nicholas Says:

    Notational abuse aside, it would be nice if we could compromise.

    It seems as if A(clarKKKKson,clarKKKKson) is a nice size.

  40. Lothar Says:

    A(Clarkkkkson, Clarkkkkson)? While we all know the Ackerman function grows excessively fast, and this number is vastly larger than the Clarkkkkson, the Clarkkkkson is so large, that this is relatively much like adding 1 to a googol plex. You can’t really tell the difference between Clarkkkkson and A(Clarkkkkson, Clarkkkkson), just as you can’t really tell the difference between 10^10^100 and 10^10^100 + 1 (provided of course you’re given a less obvious representation of the numbers :P).

    And about the “incorrect notation,” there is absolutely nothing incorrect about it. The website is simply using a different definition (the “lesser,” “lower,” or “left-associated” hyper operator) than the more common one you are familiar with. See the Wikipedia article: http://en.wikipedia.org/wiki/Hyper_operator#Evaluation_from_left_to_right

    But yeah, the Clarkkkkson is way bigger: http://forums.xkcd.com/viewtopic.php?t=1791

  41. Cougar Draven Says:

    I like Nicholas’ idea, although I was thinking calling the busy beaver function with A(clarKKKKson, clarKKKKson) as the argument. That would throw everything out of whack.

    I asked one of my friends who is currently in college, instead of my not-currently-in-college status. Perhaps he will relay my question to his teachers, and we’ll get an answer.

    Oh, I figured out that K is 10^63(^3028)2.

  42. Cougar Draven Says:

    Perhaps I should have mentioned that K is only that for the date of 1/1/2007. It grows.

  43. tronspecial Says:

    Meh, they’re both small. Almost all integers are bigger than either of them. :)

  44. Nick B Says:

    Ok, touche Lothar, but I still like the standard notation better :-) And well done on the Clarkkkkson proof… you unknowingly just saved me a few enjoyable but ultimately wasted hours trying to figure out which was larger (especially as I was going to first try finding an *upper* bound on Clarkkkkson and prove it’s lower than xkcd).

    I’m presuming your proof means the Clarkkkkson number is bigger even for a hyper operator defined the “other way”, which means if you redefine it the right-to-left way (and maybe make a few more changes, for example redefining the higher-order factorial as some higher order hyper… I mean come on, everyone knows n!

  45. Nick B Says:

    oops, used the less than symbol… silly me

  46. Lothar Says:

    Yes, it’s bigger even though it’s defined the lesser way. This is of course the part my proof glossed over completely, so it’s not rigorous, but you could even assume lowerhyper(a, b, c) ~ HigherHyper(a, b/g_64, c) and the proof still stands. From my findings, though, I think lowerhyper(a, b, c) is generally between HigherHyper(a, b-2, c) and HigherHyper(a, b-1, c) for b greater than 4, though I’m nowhere near sure. This is all from finding an upper bound to lowerhyper(a, b, c) since I too started by trying to prove C < xkcd. Once I realized that xkcd isn’t actually significantly larger than Graham’s number (oh man, what an understatement! But in some form of hyper-relative sense it’s true - it’s between g_65 and g_66, while Clarkkkkson is greater than g_K [probably by leaps and bounds]), I started trying it the other way.

  47. Rachel Says:

    You know those SAT questions where you have to decide which of two numbers is bigger, column A or column B? I’d love to see this particular example on a test.

    Or did they take those out along with the analogies?

  48. David Shor Says:

    I would place my bet that A(g_64,g_64) is far larger. The number of recursions necessary to compute the “Clarkson” function seems much smaller than the number necessary for the Ackerman.

  49. James Says:

    maths makes my head hurt… the other stuff is funny though:)

  50. Cougar Draven Says:

    I agree. The Clarkson number K is computable. Maybe not by a household computer, but something can do it, I’m sure. xkcd, on the other hand, is based itself upon a number on the order of K, then run back through a function which grows impossibly large with numbers 5 or higher entered into either argument.

  51. ekim Says:

    If by g_65 and g_66 you mean hyper(3,65,3) and hyper(3,66,3), you’re wrong that xkcd falls between them. xkcd is on the order of hyper(2,g_64,2). That middle argument isn’t a 64. It’s a g_64.

    so xkcd looks like hyper(2, hyper(3,64,3), 2)
    and Clarkkkkson looks more like hyper(2, hyper(2,8,2), 2)

  52. ekim Says:

    er — really Clarkkkkson doesn’t look like it, but rather is dwarfed by hyper(2, hyper(2,8,2), 2). This was just a simple thing to use to upper bound it. (see long and notationally-confusing above posts for a bit of explanation)

  53. Tony Says:

    I know whats bigger..

    A(A(A(A(g_64,g_64),A(g_64,g_64)),A(A(g_64,g_64),A(g_64,g_64))),A(A(A(g_64,g_64),A(g_64,g_64)),A(A(g_64,g_64),A(g_64,g_64))))

    Do I wins a prize?

  54. Good gravy Says:

    Ackermann’s function only takes 2 inputs?

    What if we defined a sort of currying Ackermann, where A(a1, a2, a3, …, an) = A(A(a1, a2), a3, …, an)

    And then call Ackermann on the range [1, 2, ... Clarkkkkson]

  55. chris e Says:

    Does hypf grow faster than the tower function? Does the Ackermann function grow faster than the tower function?

    Tower(n) = n^n^n^n …. n^n^n } n times in total (n raised to the n, raised to the n, raised to the n, etc.)

    IIRC Knuth invented it.

  56. sarah Says:

    the latest comic made me fall a little in love with you.

  57. olsner Says:

    Assuming AckermannCurry(a1, a2, a3, …, an) = AC(A(a1, a2), a3, …, an), which is larger: AC(1, 2, …, Clarkkkkson) or AC(Clarkkkkson, …, 2, 1)?

  58. gregv Says:

    This is the best article about big numbers I’ve ever read:
    http://www.scottaaronson.com/writings/bignumbers.html

  59. Lothar Says:

    “If by g_65 and g_66 you mean hyper(3,65,3) and hyper(3,66,3), you’re wrong that xkcd falls between them. xkcd is on the order of hyper(2,g_64,2). That middle argument isn’t a 64. It’s a g_64.”

    No. By g_65 I mean hyper(3, g_64, 3), and by g_66 I mean hyper(3, hyper(3, g_64, 3), 3).

    Clarkkkkson is still bigger because hypf(a, b, c) is larger than hyper(a, b, c), and Clarkkkkson is thus (way) larger than hyper(3, g_K, 3).

    See http://forums.xkcd.com/viewtopic.php?t=1791 for a proof.

    And yes, Ackerman grows faster than Tower(n):

    Tower(n) < Ackerman(5, n)

    and hypf grows even faster than the Ackerman function.

  60. ekim Says:

    Oh! I completely misunderstood the last step of Clarkkkkson.

    I thought that ck(K,K,K,K) was the clarkson number, not just a helper function for calculating the A_n (where A_{K+1} is the real thing), and that his description of the A_n’s had been an attempt to clarify the recursion.

    also, great read, that big numbers article.

  61. Dan Says:

    S(XKCD, XKCD)

    where S(n, m): the largest number of steps taken by an n-state, m-symbol turing machine started on an initially blank tape before halting.

    =p

    Now, defining really really big numbers is well and good, but how about a number that has some mathematical worth. Graham’s number trumps both XKCD and Clarkkkson because it actually has a meaning. Then again, that may just be my sense of aesthetic mathametical beauty.

  62. Ludvig Ericson Says:

    Jennifer: I too thought I was the only one, which is what made that comic fun :-)

    For the real debate here, I’d say the source is too ambiguous and as stated above, the Clarkkkkson number is relative to time, while the xkcd isn’t, which I think is something we should fix.

    How about… Hm, using a UNIX timestamp as the class for the hyper factorial?

  63. Mark Says:

    Wow, response threads like this are exactly why I love this comic!

  64. Duke B.G. Says:

    eh, i thought to the time i’ll take another look to these comments, someone will already bound xkcd and clarkkkson numbers in Conway notation… it seems i’ll need to do this myself %)

  65. J.E. Beatty Says:

    I feel that maybe something was lost in the description of the Clarkkkson number (or rather function). Lets put the two, Clarkkkson and xkcd, in the same notation, roughly.

    Let g_64 = G

    xkcd = A(G,G) and as A(m,n) = hyper(2, m, n + 3) -3, and at the values were talking that extra -3 is insignificant, we can say that

    xkcd = hyper(2, G, G+3) or in up arrow notation,
    xkcd = 2↑↑…(G -2 times)…↑↑G+3

    now for clarkkkson, Y.

    Lets really take a look at what this clarkson hyperfactorial recursive function does.

    hyperf(K,K,K) = (K!!…(K times)…!!)↑↑…(K-2 times)…↑↑((K-1)!!!!…(K times)…!!)↑↑…(K-2 times)…↑↑((K-2)…

    Let that equal A_1_1. The next term in the clarkson series, A_1, is equal to A_1_K. So
    Y = A_K+1_K

    This doesn’t even begin to cover the problem of finding the intersection of Y(t) (ignoring the second set of lynz for the moment, then K(t) = (K_0)^2^t ) Not only would hyper-n operators have to be extended to all reals, some kind of hyper-gamma function would have to be made to allow the consideration of the Clarkson Function in a rigorous way.

    We may have to settle for bounding in this case.
    For ideas, this may help:
    http://forum.wolframscience.com/archive/topic/956-1.html

  66. J.E. Beatty Says:

    sorry,
    Y != A_K+1_K
    but instead
    Y = A_(K+1)_(A_K)

  67. Kelsey Says:

    This doesn’t have much (or anything) to do with your post, but I’m a relatively new reader of the comic and I just wanted to say that I love you (in that internet way). I figured leaving it here would be less annoying than emailing you.

    I am an art student with an inner math geek. And you are a math geek with an inner art student. So it is perfect.

  68. Eric Q Says:

    There’s something going on at MIT where they’re trying to break the record for huge numbers. Look here: http://student.mit.edu/searchiap/iap-7675.html

  69. grendelkhan Says:

    What if someone designed a minimal Turing Machine that would test the Goldbach Conjecture, then wrote out the busy-beaver expression for the alphabet size and state count? Wouldn’t that be a serious use of an insanely large number? “Evaluating this expression is left as an exercise to the reader…” or somesuch.

  70. Sam Says:

    I can confirm that the clarkkkkson is bigger. Here is my proof: http://qntm.org/clarkkkkson

  71. Ilia Says:

    Maybe you would be interested in this : http://hometown.aol.com/hedrondude/scrapers.html

    Although this guy does not come close to Busy Beavers (which is normal, because no one can), it seems that he leaves both Clarkkkson, xkcd and all the like far behind (although maybe I am overestimating him).

  72. Ryley Says:

    I fly airplanes. I don’t do much math. I suck at math. I’m going to go eat some ice cream, cause my head hurts trying to comprehend this. Damn you xkcd!

  73. Mmew Says:

    :( I was secretly hoping xkcd was larger than Clarkkkkson because of its ease of explanation to others. Clarkkkkson takes a lot longer to explain and seems rediculously complicated in definition.

  74. frost Says:

    i could hardly resist doing this..

    http://frost.wedoourownstunts.com/comic.php?co=55

  75. tsuu Says:

    Wow, that was totally unfunny.

  76. Jeremy Says:

    I need to pay more attention to my math professors…

  77. Chris Drost Says:

    A couple of people have posted the link to:

    http://www.scottaaronson.com/writings/bignumbers.html

    Here it is recommended that you try to write the largest number you can write in fifteen seconds.

    I can write the two following numbers on paper in 15 seconds, provided that I don’t have to actually write the parentheses and can just use subscripts and superscripts to indicate the context. Of course, the _ means subscript and ^ means superscript. (I’m intentionally not using any special mathematical numbers or special functions, and limiting myself to well-known operations.)

    My question to you guys is, *which one is larger?*

    (1) “Let f_x = (x!)^( (x!)^( (x!)^( (x!) ) ) ).

    f_( f_( f_( f_( f_( f_( 11! ) ) ) ) ) )”

    (That’s four x! expressions in the first one, and six f-calls.)

    (2) “( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 11! )! )! )! )! )! )! )! )! )! )! )! )! )! )! )! )!”

    (That’s seventeen total factorial calls on 11.)

    Intuitively, I’d expect the first one to be larger. But I guess I’ll have to just do it out with Stirling’s approximation to get any real answers.

  78. skeptical scientist Says:

    It’s not too hard to beat the busy beaver function, really. Just relativise it! Let dckx be the largest number of moves made by a halting turing machine on blank input with oracle 0′ (where 0′ denotes the turing jump of the empty set) and at most 42^42 rules. This many rules is surely plenty to define the busy beaver function, and just about anything one might consider doing with it, and yet one could easily defeat this by using oracle 0”, or 0”’, or W=0′+0”+0”’+…, or W’. In fact, since one can sensibly define 0^k for any ordinal countable ordinal k, and since the Ackermann function, being generalized exponentiation, can be generalized to take ordinals as inputs, you could beat the pants off of this by replacing your W’ oracle with a 0^k oracle where k=Ack(w,w), and w is the first infinite ordinal.

    As the Scott Aaronson article mentioned, the clever part of defining big numbers concisely is the insights that enable you to do it. Anyone can define a larger number, but to do it more elegantly requires insights - I think it’s likely that turing machines represent the best way of producing big numbers, since turing machines can simulate anything we can define (at least given the right oracle.) However, people will have new and interesting insights about how much information an oracle can carry, and perhaps some of these insights will, in addition to revealing interesting facts about computability and information theory, allow for concise definitions of ever larger numbers.

  79. Lothar Says:

    Chris: The first of those numbers is considerably larger. The first is bounded below by Hyper(11!, 4, 19), and the second is bounded above by Hyper(11, 4, 19).

  80. Chris Drost Says:

    Yeah, I had worked that out about a week ago on my own; but thanks for the courtesy of double-checking for me.

  81. Steve Says:

    The Clarkkkkson is, I think, bigger.

    http://qntm.org/clarkkkkson

  82. John Hawksley Says:

    The contest opened in the style of a boxing match, with competitors presented “in the red corner” and “in the blue corner.” Elga went first, writing the number one. “Ha!” announced Rayo, as he countered with a string of ones across the board. Elga retaliated with a clever trick, erasing a line through the base of half of the ones to turn them into factorials.

    As the battle continued, the contestants began defining their own functions. Moments into their definitions, a student raised her hand and asked Elga if the operation he had written on the board was even computable. Elga cleared his throat, smiled and succinctly replied, “No.”

    Functions became more and more complicated, at one point prompting the announcer to proclaim, “It looks like there are words in your number.”

    Near the end of the duel, Rayo furiously scribbled on the whiteboard: “The smallest number bigger than any number that can be named by an expression in the language of first order set-theory with less than a googol (10100) symbols.”

    Although this definition took a bit of tweaking, including what Rayo described as his “second order logic trick,” it soon won him the duel.

    As Elga collapsed, slain, the referee closed the ceremony. “It was a great game,” Elga said. “Heated at times, but nevertheless, a really great game.”

  83. Alex Says:

    If it turns out the Clarkkkkson is bigger, counter it with A( A(g64,g64), A(g64,g64) ).

  84. Sven Says:

    Try omega as defined by pure set theory; its a legitimate number, its what is is supposed by the Axiom of Infinity.

    I suppose it is bending the rules, it is infinitly large, but its only countably infinite!

  85. poorsod Says:

    This has probably been said already, and I doubt many people will read this far down (I know I didn’t), but Clarkkkkkkkson probably doesn’t count for comparisons such as this, since it depends on K which increases (hyperfactorially, mind you) over time. So whatever real number you can think of, it’s just a matter of time before Clarkkkson is bigger than it.
    Am I right in saying the fact that t is an argument in Clarkkkkson’s function means it’s not even a real number? Can you even measure it on a momentary basis? Moments are infinitely transient…

    What would be more interesting would be to find out the SMALLEST real number ever concisely, originally defined.
    That is, if I were to define a number as 1/A(G,G), it wouldn’t count since you beat me to A(G,G). What is the smallest number defined that doesn’t rely on the likes of the xkcd number or Clarkkkson? Hmmm…

  86. Lothar Says:

    Alex, A( A(g64,g64), A(g64,g64) ) is less than g66 is still way less than the Clarkkkkson. Sorry.

    And poorsod, even if we take the Clarkkkkson at t=0 (when K=100), the xkcd number is still far far less than it. Numbers have been defined which far surpass the Clarkkkkson at times beyond the solar lifespan. Sure, the Clarkkkkson will eventually overtake any real number, but it may take a time greater than it itself (measured in years, millenia, whatever) to do it.

  87. xkcd » Blog Archive » Large numbers Says:

    [...] large number in this comic, and then talked a little about comparing it to another large number in this blag post.  But all the numbers discussed had a sense of arbitrariness to them.  The xkcd number was just a [...]

  88. Prog » Blog Archive » A Fresh New Look. Says:

    [...] both those numbers do no quite sit in the world of overly large numbers, but when combined, such as xkcd did with the number A(g64, g64), it can equal an overly large number. But this is still nowhere near [...]

  89. Alex Says:

    Sure, the Clarkkkkson will eventually overtake any real number, but it may take a time greater than it itself (measured in years, millenia, whatever) to do it.

    Yes, but so will ln(x*(.1)^xkcd)

  90. Flap Says:

    omg, what am I doing here ? I am a sociologist ! HELP !

  91. Munkeyboy Says:

    wow…I read through the entire comments sections without comprehending most of it (I’m a psychologist, not a mathematician), but I can’t help but love a debate that can be so succinctly summed up with “which is larger?” . I tip my hat in respect to all of you who have pursued numbers into the realm of the esoteric, a realm I dare not tread say for a few dips in practical calculus. Kudos to all of you.

  92. Steve Says:

    Nerds!

    I can’t believe I read the whole thread.

    btw - XKCD is bigger, for now. You don’t have to calculate the numbers out to figure that out, just the number of digits

  93. Lothar Says:

    Haha, Steve! You don’t seem to realize that xkcd and the Clarkkkkson both are practically indistinguishable from their number of digits. That is, given a number near log(xkcd), it is nearly impossible to establish that it is less than xkcd. In fact, you can’t tell xkcd from the number of digits in the number of digits of xkcd, and you can iterate that a million times, and you still can’t tell the difference.

    And, the Clarkkkkson is bigger, as has been established by multiple people in the thread.

  94. Don Law Says:

    I just invented a new number (yes it breaks the rules from the other guy…)

    Clarkkkkson + xkcd = Cake

    (Cake is clearly larger than Pi, and much bigger than Clarkkkkson and xkcd)

  95. kenney Says:

    I have alwayse held the belief that the solutions to the hardest problems are right in front of us.

    it is clear that this clakeson fellow is using smaller font in his explanaiton then in the xkcd comic. therefore the xkcd is larger.

  96. Desunt Cetera Says:

    Big Numbers

    In one of those funny coincidences where it seems the popular mind is pregnant with an idea, an article was recently published to the programming section on reddit that mentions the busy beaver function. The article is titled “Who Can Name The Bigger…

  97. Will Says:

    The way I see it, in the clarkkkson number, the guy’s using K as a defined number, when it’s quite clearly not. It changes every day. So, surely the clarkkkson number’s ill-defined, therefore rendering it useless.

    To put it another way, what would happen to mathematics if the answer to 2+2 grew by one each day? Aside from someone failing the spam protection on comments, of course. :P

    The xkcd number would, therefore, be the largest number to stay constant, as it is based on a function, and a constant (if slightly ridiculously large) number, that has been seriously used in a mathematical equation. After all, the answer to A(g_64, g_64) will be constant (if ever-elusive), but the clarkkkson number will change.

    …And to be honest, who wants to listen to someone who doesn’t do their homework? XD

  98. Canada Says:

    …And to be honest, who wants to listen to someone who doesn’t do their homework? XD

  99. stegbok Says:

    i like pie

  100. Nadreck Says:

    To put all of these numbers in perspective: I remember a text book from the 1960’s that talked about Ackermann’s function. It had these homework questions:

    1. Can you compute A(5,5)?
    2. Can you even imagine how big A(10,10) is?

    The answers were in the back of the book.

    The answers were: No.

  101. Lane L. Says:

    These numbers both recursively increase, so it is quite impossible to calculate the values, let alone compare the two. K will always increase, for as long as time exists. A(g64, g64) will always increase, in theory, past time. So, the answer is, the xkcd number will be bigger than the Clarkkkkson, some while after time ends.

  102. Ludixkcdrous Says:

    Where A(n) is Ackermann number n, we define L(n) as A(A(A(A(…A(A(n))…) where the number of recursive A() calls is equal to the value n.

    The Ludixkcdrous number is defined as L(1043452800), which is the Unix epoch time of the xkcd.com domain registration.

    I suspect the Ludixkcdrous number is far larger than any of the previously mentioned numbers.

  103. Danix Says:

    Ok. I did a small, simple program to calculate the Ackermann function. This is on C, limited to 2^64-1 because I’m too lazy to search a big integer library.
    A(4,1):

    [danix@phobos1 ackermann]$ time ./acker 4 1
    65533

    real 0m54.338s
    user 0m48.125s
    sys 0m0.237s

    A(4,2) seems just to be impossible to compute, or maybe I might be able to, just that I need a big integer lib. I think the process was around 10 MB when I killed it … ow.

  104. gunofdis Says:

    ackermann(4,x) is where ackermann starts getting stupid huge. You’ll not only need a big int class, but a very large amount of space and time to run it.

  105. gunofdis Says:

    for clarification, ackermann(4,2) is (2^65536)-3 or about 2x 10^19729

  106. Jeff Says:

    I don’t see where he defined the number ‘2′. ‘2′ is technically defined as ‘1+1′ in conventional usage, which he didn’t do himself. So either his number is undefined, or he’s not allowed to use ‘2′.

    In the event of the first case, any number is not comparable to his number. In the event of the second, I’d like to submit the following number:

    A(A(1+1+1,1+1+1),A(1+1+1,1+1+1))
    Which is 32 charachters, and does not use any numbers defined by someone else.

    Moral of the story; If the only way you can say you’ve accomplished something is by applying a rule that invalidates what you’ve accomplished, what have you accomplished.

    So it’s not really about the really huge number, but the method you use to get the really huge number, and the general idea of ‘the largest number concisely defined’.

  107. rasteri Says:

    Heh, I once met one of the dudes who made lab6 at a 2600 meeting.

  108. James Says:

    Hello XKCD. I’m the author of the original Clarkkkkson article. I was a lawless know-it-all 15 year old at the time, and clearly a furious mental masturbator… not that I’ve stopped being any of these things :)

    I’m enjoying this post and thread immensely, especially Steve’s proof. I didn’t know anything about Graham’s number at the time, so I’m quite pleased that the Clarkkkkson is actually bigger. And with the ticking time-bomb that is K squaring every day, it’s got a Gmail-style claim to infinity.

    I can’t say for sure why I wrote it, but my best guess is that it was an extension of the lines joke. Me and the other Lab 6 people were falling over ourselves laughing at the idea that Adam had to do so many lines - laughing at the teacher who had undermined his own punishment. Building up a big number on top of the number of lines was as if to say: “Look! You gave him so many lines, you can construct the biggest number in the world out of them!”

    Such passed for logic :)

    Anyway, I’m a huge fan of XKCD (I did this) but have neglected the blag so far. I promise to try harder in the future!

  109. Mr. Briggs Says:

    Since the Clarkkkson is a constant, it is invalidated because it grows with passage of time; therefore there will be a point where clarkkkson is bigger than the XKCD number.

    How about this: 9 -> 9 -> 9 -> 9 -> 9 -> 9 -> 9 -> 9? That’s definitely bigger than either number.

  110. Mr. Briggs (edit) Says:

    Oh, sorry, I meant “not a constant” for the clarkkkson.

  111. Moser Says:

    Not sure if this breaks Clarckson’s rules of only using what you defined, but how about this?

    ck(A(g_64, g_64), A(g_64, g_64), A(g_64, g_64), A(g_64, g_64))

    And no pesky Kappa to determine

    Or, if you prefer:

    A(ck(A(g_64, g_64), A(g_64, g_64), A(g_64, g_64), A(g_64, g_64)), ck(A(g_64, g_64), A(g_64, g_64), A(g_64, g_64), A(g_64, g_64)))

    Ackerman’s function using 2 Clarkkkkson functions each using 4 xkcd numbers.
    Compute that!

  112. The name I was Given Says:

    I like that one Moser, but I think this might beat it.
    BB_BB(g_64)(A(xkcd,xkcd))

    That would be the Busy Beaver, to the order of the Busy Beaver function of Graham’s number, function of Ackerman’s function given two xkcd numbers.

    But on another note; the Clarkkkkson number kind of cheats because it isn’t a solid unchanging number.

  113. Malletman Says:

    Just a question, for those not quite as gifted: in the search of big numbers, where does, say, the Goedel self-referential phrase-code for PM fall in line with something like Graham’s Number? And then if we incorporate that number as an axiom, then how large (relatively speaking) would the next resulting self-referential code-phrase be?

  114. m1omg Says:

    Is this number larger than clarkkkson?

    Let’s say that 9 pentated to 9, for example is 9 tetrated to 9 9 times , 9 sextated to 9 is 9 pentated to 9 9 times and so the steps go on.
    Now, what if we have xkcd steps (name it xkcd-tation) and we xkcd-tate xkcd xkcd times?It is larger than the Clarkkkson?

  115. Wry Mouth Says:

    Sigh; just read this thread. In investigating *another* number theory problem, had developed a series of “hyperfactorials” just like the Clarkkksons — but last year (about 2007 Feb). I’d suspected they’d been fooled around with already, but now I’ve got a scintilla of evidence that someone else has been pondering the same number set. The author seems to be referring to another, previous person wwho’d dubbed them “hyperfactorial,” so now the hunt is on to find that person…

    (I am a math teacher and by way of avocation, an amateur statistician/probabilist)

    So, I get what he’s saying perfectly (once he gets beyond the “lynz” set up). Hyperfactorials get really, nicely huge fairly quickly. I think of them as mathematical poetry (no use for them, yet, although I can envision possible use in computer diagnotics).

  116. Bob D Says:

    The Conway chained arrow notation, mentioned already, is astonishingly powerful. The simple expression 4 -> 4 -> 4 -> 4 is already far larger than Graham’s Number. In fact, it’s larger than the xkcd number itself.

    I can’t tell whether or not it’s larger than the Clarkkkkson too…
    but once the chain reaches a fifth term I’m certain it would be.

    Therefore “Up” proposes a new number, in honour of the xkcd number, called the Upxkcd number:

    http://azureworld.blogspot.com/2008/07/up-function.html

    P.S. the uncomputables (such as busy beaver, see four comments up) will probably win this game hands down.

  117. Default Says:

    Eh, someone beat me to the punch with using cardinals… I am quite the dilettant when it comes to sophisticated mathematics, and don’t know if this is valid, but I was going to suggest this “cheat”: aleph-null -1.

    P.S. Can’t help but feel a bit disappointed that xkcd number lost, but I found it, somehow, satisfying to see people use the Conway chains to reslove it.

Leave a Reply