zlacker

[parent] [thread] 3 comments
1. gglon+(OP)[view] [source] 2015-02-17 18:30:40
Very 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[#!&][#][#]&)
replies(2): >>evanb+t5 >>evanb+s7
2. evanb+t5[view] [source] 2015-02-17 19:20:50
>>gglon+(OP)
Smart. 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.
replies(1): >>gglon+09
3. evanb+s7[view] [source] 2015-02-17 19:45:41
>>gglon+(OP)
I think there might be a nice way to use #0 to blow up the numbers even further. But I have to do real work :)
◧◩
4. gglon+09[view] [source] [discussion] 2015-02-17 20:02:42
>>evanb+t5
Thanks, 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

So I would recommend to avoid things like f@f@f@f@a where there is clearly a pattern.

[go to top]