4 ms·
I just realized 99 should be replaced with "9!".
by evanb 12y ago
I just realized 99 should be replaced with "9!".
- evanb 12y agoUsing the infix special form ~ we can cram in another ^#: u[n_][a_,b_]:=If[n==0,a b,Nest[a~u[n-1]~#&,1,b]];Nest[#~u[#^#^#^#]~#&,9,9~u@9~9] I should also note that I'm not confident as to which of Nest[#~u[#^#^#^#]~#&,9,9~u@9~9] Nest[#~u@#~#&,9,9~u[9^9^9^9]~9] is larger.
- gglon 12y agoVery nice. Mathematica can clearly do the job. But I feel like there is still a lot of room for improvement. Clearly though, the proof would be more and more difficult. Here is my modification: M=Nest; u[f_][n_][a_]:=If[n<1,f@a,M[u[f][n-1],a,a]]; u[#][#@9][#@9]&@(u[#!&][#][#]&) 82 chars total. comments: (*start with definition of Knuth up arrow*) u1[n_][a_][b_]:=If[n==0,a b,Nest[u[n-1]@a,1,b]] (*let treat 1 as symbol and take 1 == b == a *) u2[n_][a_]:=If[n==0,a a,Nest[u[n-1],a,a]] (*next define for arbitrary function f instead of multiplication*) u[f_][n_][a_]:=If[n==0,f@a,Nest[u[n-1],a,a]] (*numerical example when we take n<3 instead of n==0*) u[#! &][#][#] &@3 = u[#! &][3][3] = 10^1746 (*Next take the function f and parameters a to be: *) f = u[#!&][#][#]& a = f@9 (*compute final number*) u[f][a][a] (*those 3 steps are shortened to: *) u[#][#@9][#@9]&@(u[#!&][#][#]&)
- evanb 12y agoSmart. It didn't occur to me to have the base case be an arbitrary function. Yours is much larger than mine. One comment: M=Nest; is a waste of characters. I tried that in my solution too, but it wound up costing me an extra character ;). So I think you're down to 75 characters. It might make sense to remove the factorial, and change the base case of u to f@f@f@f@a.
- gglon 12y agoThanks, I forgot to remove M=Nest that was beneficial in my previous attempts where I used 3 Nests. But remember: Never forget that it is a waste of energy to do the same thing twice, and that if you know precisely what is to be done, you need not do it at all. --- E. E. ``Doc'' Smith (1930) ...the optimal solution avoids all pattern. --- Douglas Hofstadter (1983) http://djm.cc/bignum-results.txt http://djm.cc/bignum-results.txt So I would recommend to avoid things like f@f@f@f@a where there is clearly a pattern.
- evanb 12y agoI think there might be a nice way to use #0 to blow up the numbers even further. But I have to do real work :)