# Algorithm for comparing the size of extremely large numbers

Is there a simple algorithm to decide which of the numbers

$$a \uparrow ^b c \text{ and } d \uparrow ^e f$$

is the bigger one ?

Using the hyperoperation, the numbers can be denoted with

$$H_{b+2}(a,c)\text{ and } H_{e+2}(d,f)$$

I tried using the recursive definition of $H$

$$H_n(a,b) = H_{n-1}(a,H_n(a,b-1))$$

and induction to get useful properties, but without substantial success.

If the given numbers are very large, the following heuristic should give the correct result in many cases :

If $b>e$, then the first number is bigger. If $b=e$ and $c>f$, then the first number is bigger. If $b=e$ and $c=f$, it is trivial to compare the numbers.

Of course, this heuristic cannot hold in all cases.

Any ideas?

• Good question. I believe the best algorithm is still much harder than P. You can look at Munafo's Hypercalc although this fails for fairly large powertowers. I haven't got a sharp idea about this, but taking superlogs and then applying something that would split $\text{slog}(x + y)$ into an $\text{slog}(x)$ and something small would be a doable line of thought. I really don't have time for this, but if anyone doesn't come up with something, I'll try to scribble some code up. – Balarka Sen Jan 8 '14 at 15:37
• @BalarkaSen I think superlogs start failing us for higher hyperoperations, sadly. It works best around the tetration level, but not much higher. – Simply Beautiful Art Jan 7 '16 at 23:28
• D: So sad. I actually came here looking for some good ideas, only to realize I'm the only person who answered here... – Simply Beautiful Art Feb 11 '17 at 17:46
• I am stuck in the same predicament, just with bigger numbers: math.stackexchange.com/questions/2138770/… – Simply Beautiful Art Feb 11 '17 at 18:37
• @SimplyBeautifulArt Thank you for your efforts and for your interest in large numbers. It is very difficult to compare the magnitude of large numbers. I have not looked closer to your number, but I do not think that it beats $[3,3,3,3]$ (Bowers Array notation). By the way, which tools are allowed in the contest ? Conway Chains, Bowers Arrays ? – Peter Feb 11 '17 at 18:43

Since this question has no answers, I will give it my best shot and hope someone can improve on this.

I will start off by noting that googology is a good place if you are really interested in very very VERY large numbers. It might also be able to help you a little bit.

To answer your question, I will use a few ideas...

Imagine comparing the following numbers:$$N_1<N_2$$

It is given that $N_2$ is larger, but we don't know how to prove it.

One method is to find $A,B$, such that we have:

$$N_1<A<B<N_2$$

Basically, try to find the middle ground.

Another idea of mine is to compare growth rates:

$$a\uparrow^bc\text{ and }d\uparrow^ef$$

Well, how do I compare this? Start with $b,e$.

If $b$ or $e$ is sufficiently larger than the other, then it ultimately determines how big the number will be.

Next in importance is $c$ and $d$. These determine how many times you will be repeating a certain process, so the larger, the bigger your number will be.

Ultimately, it comes down to the following:

$$f(a,b,c)=a\uparrow^bc$$

Start with $a,b,c=3$. Then try $f(4,3,3),f(3,4,3),f(3,3,4)$. Which one is biggest? Use this information to determine how each number affects the final result and which one has a larger effect.