Alright. Idelac, thank you for being willing to learn, and also for pointing out algot's errors.
Let me just copy-paste a post about the same thing...
(Note: In this, we assume that 0 does not count as a positive integer.)
In which a,b, and c must be positive integers, X is shorthand for at least 3 positive integers, and Y is shorthand for at least 1 positive integer.
DN(a) = a
DN(a,1) = DN(a+1)
DN(a,b) = DN(a+1,b-1)
DN(a,b,1) = DN(a,b)
DN(a,1,c) = DN(a)
DN(a,b,c) = DN(a,DN(a,b-1,c),c-1)
DN( X ,1) = DN( X )
DN(1, X ) = DN( X )
DN( X ,1, Y) = DN( X , Y )
DN( Y ,a,b,c) = DN( Y ,a,DN( Y , a,b-1,c),c-1)
DN(a,b,1) = a+b
DN(a,b,2) = a+a+...+a+a = a*b
DN(a,b,3) = a*a*...*a*a = a^b
DN(a,b,c) = a^^...^^b with c-2 ^'s
DN(10,10,10,x,2) < G(x)
DN(10,10,10,x,3) < G(x,x)
DN(10,10,10,10,10,2) = Very big compared to G(1000,1000)
Advice: It's not enough to have only one argument, or two, or three, your function has to be able to take any number of arguments. When I say arguments, I really mean numbers. A 2-argument function is f(a,b) = a+b. A five-argument function is f(a,b,c,d,e) = a+(b*(c^(d^^e))). A function that can take any number of arguments is f(a,b,c...) = All the inputs multiplied together. After that, you'll want to extend the function somehow. Make a second leap like going from 3 arguments to as many arguments as you want. Then, find some way to make as many of those leaps as you want. That's the first super-leap. DN( X |^a Y) was my first super-leap. Then, make a leap beyond that. For me, that was < Y ,a>. I'm currently working on the second super-leap, but I don't know where to go from there.