last day (253 days later) » 
19:00 - 22:0022:00 - 00:00

19:25
Heyo @StevenH.
Shall we start from the top?
Howdy! I realized that my recursion was broken and fixed it just now, so I'll be using the new one moving forwards.
Yeah sure
So we start with 26 letters
Then you permutate them and interpret them as base 256 digits.
Permutation(26 letters) ~ 26! ~ 26^26
base 256 ~ 256^(26^26)
factorial ~ 256^(26^26)! ~ 27^27^27^27
Generate all the permutations of all the permutations of...
                         ... (repeat Q times) Q, then turn that into a string
                         and take the result as a number.
and then we do "C`.pF"
that 27^27^27^27 times
19:29
So we start over with 26 letters?
And permutate it 27^^4 (faster notation) times?
yup
Except the second iteration it'll be a number
If so, then the result is approximately 27^^^(27^^4)
Or no
Hm
Sorry, no I misunderstood
Yeah, it should be ~ 27^^^27^^4?
Let's do it with 2 letters?
Permutate("AB") -> "A", "B", "AB", "BA"?
only full permutations, so "AB", "BA"
Yup, and then we do the stringification/base256 interpretation
and then repeat all that 27^^4 times
Actually, you know what, I can do a little better
I'm going to set Q to be the 27^^4 before it enters into that statement
Then the result should be
~ 27^^^27^^4
42 secs ago, by Steven H.
I'm going to set Q to be the 27^^4 before it enters into that statement
Effect?
Oh, we're doing permutations of Q?
then
~ (27^^4)^^^27^^4
I think
All right. So we set Q to ~ (27^^4)^^^27^^4, and then iterate from 0 to ~ (27^^4)^^^27^^4 separately (counting up using f_0)
Each iteration, we define a function y
(that's what the L's for, it specifically defines a function named y)
I'll grab the current iteration of it right now: L&b=+Q.v*"C`.pF".!C`.pC`ytb
Ah, the backticks are breaking it
> and then iterate
Iterate what?
Don't mind
I can read it from the main post
Iterate what doesn't matter because I don't ever use the loop variable in the loop statement
Technically it's an integer N, but Q>>>>>N so no point in using N ever
Each iteration it defines a new y and then does a lot of repetitions of that, basically
19:44
Hm
Do you have a really small known value of y?
e.g. y(1) or y(0)?
It memory errors on y(1)
And then this y behaves from there like y(Q) = all_that_string_stuff(y(Q-1))?
RIP whatever lol
y(0) is the base case, will return Q
err
0
more or less, y(Q) will basically apply the string stuff above Q times?
y(b) does the string stuff y(b-1) times to Q, adds the result to Q, and sets Q to the new result before returning it
19:48
Oh hm, your number is probably going to be a bit bigger than I had thought :D
Oh, okay
Hm, let's see...
It builds a string that has y(b-1) instances of the string stuff, which gets autofilled with Qs when I execute it with .v
that's why I need Q to be the variable I'm using for all of the large-ordinal storage
string_stuff(x) ~ 10^^^(x^^4) ~ 10^^^x
y(b) ~ 10^^^^y(b-1) with a Q on top
y(b) ~ 10^^^^^b
And apply this y thing 230 times
score ~ 10^^^^^230
I think
The particular base 10 is insignificant compared to the exponent btw
Remember, y(b) starts always with Q instances of permutation on whatever Q is (which is the new Q that was set from y(b-1)) , and then it repeats that y(b-1) times. The number of times it's doing the repetition isn't the same as the number it's starting from (Q, in this case)
And also, we're not just applying it 230 times
19:54
gosh dang it lol
So y(b) applies the iteration y(b-1) times?
Then y(b) ~ 10^^^^^b :P
We're applying y((y(y(...y(Q))))))))))))) Q times, [and then applying it to Q again that many times,] (repeat the last statement 228 times).
New Q each time, correct?
:P Fair enough, I keep forgetting the old value of Q is insignificant compared to the new - yeah, new Q each time
or whatever the new value was set from the last time y got called
19:57
In function iteration notation, you're applying Q = (y^Q)(Q) 230 times?
And then that's just one iteration of the for loop :D
(y^x)(x) ~ 10^^^^^^x
230 times ~ 10(^7)230
for loop does what here?
Repeat that, starting from defining y, each of the (27^^4)^^^27^^4 times that the for loop iterates
19:59
(p.s. does it bother you how fast I do these mind boggling large num calculations?)
Oh, okay
230 is a fixed value?
Yeah, at that point I got tired of thinking about how to use more evals to make that dynamic
I could probably make it bigger just by making it Q times, but :P
Haha, same. Have you seen the end of my code?
x.times{
In terms of how fast, I imagine you're a lot more practiced with this than I am. I don't have any background in large numbers whatsoever
Practice builds speed
final result? ~ 10(^7)((27^^4)^^^27^^4)
Yeah true. I also have a good eye for recursions like this
In terms of the fast growing hierarchy, this is approximately f_8(Q)
You can approximate Q ~ f_4(f_3(4))
I... I have a ways to go then
20:03
Huh?
Oh, yeah
x'D
But creativity is fun nonetheless
Indeed
Would you like to know how finite values of the fgh works?
It's not too terrible, I could definitely explain it here.
f_0(n) = n+1
f_k(n) = apply n times f_(k-1) to n
That's all it does
x'D But it gets really big really fast
So f_1 is n+n?
20:06
f_1(n) = n+1+1+1+... = n+n = n*2
f_2(n) = n*2*2*2*... = n*2^n = n<<n
Yeah
And then you get to f_3 and above
It's as strong as the Ackermann function
Then you get to this silly f_w(n) = f_n(n).
It doesn't seem like much, but then you have f_(w+1)(n) = n applications of f_w to n.
Is that what I'd get if I actually bothered to eval *"yF" Q?
Or am I misreading
e.g.
f_(w+1)(2)
= f_w(f_w(2))
= f_w(f_2(2))
= f_w(2<<2)
= f_w(8)
= f_8(8)
...
I'm not sure if it's what you'd get
But without two arguments, it's pretty hard getting this far.
Btw, if you know Graham's number, it's approximately f_(w+1)(64).
eval *"yF" Q
Does this call yF Q times?
It's basically what I did 230 times, except Q times instead
It wouldn't improve your number significantly :(
could you do something like eval *"eval *"yF" Q" Q?
If you could, each application of eval would probably move you up one step in the fast growing hierarchy
I fail to see the difference between that and eval *"yF" (Q^2)
20:15
I meant that it should apply eval *"yF" Q a lot of times
The difference is that the value of Q goes up after each eval
Makes a big difference lol
I think there's a trick I could use for that, but I couldn't do that vanilla, eval is only for one expression
Unfortunate lol
Could you reapply the L line?
With the new Q value?
The L line, thankfully, pretty much auto-updates with Q
because y(1) returns Q+(whatever y(1) was going to return before)
20:20
No, I mean on the L line, you've got something along the lines of for 0..Q do ...
The Q in the for gets fixed.
So apply that a whole bunch
and you move up one level in the fgh
I could, probably, but it's easier to .v+"s["*".v*\"yFC`\"Q"
translate :P
which is the trick I was talking about
basically eval (summing Q versions of eval *"yF" Q )
20:22
k
Q times ~ 10(^7)Q
final result ~ 10(^8)(original Q) ~ f_9(Q)
Q = (27^^4)^^^27^^4
Woo
Amazing how much a subtle change can do
And now I have ~440 free bytes to work with!
x'D
So beyond f_(w+1) there lies f_(w+k), and beyond that lies f_(w2)(n) = f_(w+n)(n), and beyond that lies...
Curiousity... what happens if I move that inside the definition of y
Move what inside y?
.v+"s["*".v*\"yFC`\"Q"
20:28
I'm afraid you'll most likely get an infinite loop.
y(Q) = recursion over y(x), where x<Q
Hm...
Always follow that rule to ensure a terminating recursive function
.v+"s["*".v*\"yFC`\"tb"tb
now it's b-1 instead of Q
Hm...
Then it's weaker, unless b is able to spike up a lot.
Or hm
I mean, I'll keep the outside version too that iterates over Q
And b starts at Q
With numbers this large I doubt -1 makes a difference
20:30
Wait, explain it to me more broken down
-1 makes all the difference, it's how you go down to your base case to end the program :P
Otherwise you'll fail to terminate most likely
L&b=+Q.v*"C`.pF".!C`.pC` .v+"s["*".v*\"yFC`\"tb"b

So the string_stuff(TM) y(b-1)+y(b-1)+...+y(b-1) times, where there's `b` instances of `y(b-1)`
And b = Q initially
Do you reapply this multiple times?
b = Q when we call it outside, yeah
We apply it as
.v+"s["*".v*\"yFC`\"Q"
FYI, there's not much affect in doing y(b-1) + y(b-1) + ...
unless that comes naturally, it's enough to just do the string_stuff
reason why I can't just say it's a multiplication is because each of those is going to return more than the last, seeing as it relies on the value of Q and each also sets Q
20:35
Ah
y(b) isn't a function per se, but an operation that changes the global Q?
It's both
or whatever yeah
Well, not in the mathematical sense I guess
I managed to reach f_(w^3)(65000) using a global Q like you did, and 3 arguments in a function like you're y(b).
In Ruby I mean
Yeah, but I think it helps a little that you know the stuff :P
20:37
Why not do y(b-1) + y(b-1) + ... Q times?
Or is it the same? O.o
@StevenH. Yeah it does :P
Though if you give it a good look, the fast growing hierarchy really isn't terribly complicated.
I... I could
I could do it Q times
Would probably work out better? :P
Maybe, yeah
I can't think of anything exciting to fill the space with now
haha
512 bytes is a lot for a codegolf site, isn't it?
I have 418 bytes of space and nothing to do with them >_>
I mean, it's not a lot for Java
but for Pyth it's a ton
20:49
Does Pyth support arrays?
or lists
Yeah, that's how it's representing the permutations
Pyth can do basically anything Python can do, it just has a bunch of builtins that make it easier for me to work with than Python
Oh, right x'D
20:51
Well
I'll say that in my experience, if you want to come anywhere near me, arrays will become almost necessary.
I basically write really big ordinals like w^w in terms of arrays and throw them into a function
almost?
Almost = sure, it's possible to do this stuff without arrays, but you'll probably kill urself over how difficult it would be.
23
Q: Output the simplified Goodstein sequence

Simply Beautiful ArtA number is in base-b simplified Goodstein form if it is written as b + b + ... + b + c, 0 < c ≤ b The simplified Goodstein sequence of a number starts with writing the number in base-1 simplified Goodstein form, then replacing all 1's with 2's and subtracting 1. Rewrite the result in base-2...

Instead of writing a number in base b as b+b+b+...+c, imagine writing it as (b^k)*a_k + (b^k-1)*a_k-1 + ... + a_0
From there apply all the same rules
The resulting sequence grows to be as long as f_x(n), where x = w^w^w^w^...n powers of w.
Variations of this can go even further.
But there's a really big scary limit to how far you can go with this
And it's far below my number.
You don't mind me talking about this?
Not at all
I mean, that's what I made the room for
A number is in base-0,b SGF if it is written as b + b + ... + b + c, 0 < c ≤ b
The 0,n SG sequence takes a number in base-0,1 SGF, changes all the 1's into 2's, and subtracts 1. You then write the result in base-0,2 SGF, and change all the 2's into 3's and subtract 1. Repeat until you hit zero.
G(0,n) is the amount of "subtracts 1" are required for you to reach zero, starting at n.
A number is in base-1,b SGF if it written as G(0,b) + G(0,b) + ... + b + b + ... + c, 0 < c ≤ b
G(1,n) is how many "subtracts 1" are required for this to reach zero, where b->b+1 and you can use G(0,b), starting at n in base 1.
G(2,n) allows for things written in the form G(1,b) + G(1,b) + ... + G(0,b) + ... + b + ... + c
etc.
Can I have a concrete example for, say, G(1,9)?
21:04
How fast does G(n,n) grow? :-)
G(1,9) says take 9 and write it in base 1.
So 1+1+1+1+1+1+1+1+1
Before hand, let's deal with G(0,1)
No, that would be G(0,9)
1
send 1's to 2's -> 2-1 = 1
send 2's to 3's -> 1-1 = 0
So G(0,1) = 2 steps
G(1,9) would start out as follows:
G(0,1) + G(0,1) + G(0,1) + G(0,1) + 1
-> G(0,2) + G(0,2) + G(0,2) + G(0,2) + 2 - 1
21:06
So you can see where this is going?
:D
Upwards. Quickly.
Oh, and the first index on G never changes
Meh, it's not terribly terrible actually
IIRC G(0,n) = 2n
Or no
I mean, before all this I thought n! increased quickly
lol
Jeez, I used to remember the exact formula for G(0,n)
I'm sure it's on OEIS
21:09
G(0,2)
1+1
2+1
3
3
2
1
0
It's probably not actually
grows way too fast
G(0,2) = 6
Speculation: G(0,n) = 2^(n+1)-2
Yup
Found that formula
hurrah
Well anywho, I'll just tell you... G(1,10) is probably already way bigger than your number.
That's how crazy this scheme is.
Let's try G(1,2)
G(0,1)
G(0,2)-1 = 5 = 2+2+1
3+3
4+3
5+2
...
7
7
6
...
0
Not too bad.
14?
Oh right
G(1,10) is probably smaller than your number x'D
But G(10,10) is definitely bigger
Well then
G(1,3):
G(0,1)+1
G(0,2)+1
G(0,3)
G(0,4)-1 = 29 = 4*7+1
5*7
6*6+5
...
11*6
12*5+11
...
33*5
...
67*4
...
1087
1087
1086
...
0
G(1,3) = 2176
It grows, like, exponentially exponentially.
That is, G(1,n+1) ~ 2^G(1,n)
Crazy notations huh?
Very innocent looking sequences at first
G(0,n) = 2n
And then you get to G(1,n) lol
And this is where I'd introduce G(1,0,n)
In base-1,0,b write a number as G(b,b) + G(b,b) + ... + G(n,b) + ... + G(n-1,b) + ...
where n<b
And then you can see this gets a wee bit crazier
New strategy inspired (partially?) by this: define a new variable Y -> [Q,Q,Q,Q....Q] (where that's of length Q), and (Y = [Y]*Q)_Q... Oh dear
21:21
lol, what's that supposed to do?
(Y = [Y]*Q)_Q
In ruby I guess it'd be Q.times{Y=[Y]*Q}
Oh, so we're doing Y = [Y,Y,Y,..]
:| But what's that supposed to do?
>.>
Just make a lot of nested Q's?
Hm, gtg, will be back before the next hour probably.
A lot of nested references to Q. After we set it up, we can reduce on some other fast-growing function and at each point update Q
Well, fast-growing function of two variables
21:24
:P
Btw, you know the Ackermann function?
I've heard of it
The simplicity of recursion is astounding, as it beats your current number.
Look it up, fairly simple rules, but much much big
Ack(n,n) ~ f_w(n)
That's probably pretty efficient for me to do, actually
in terms of bytes
M?G?HgtGgGtHgtG1hH
g is the Ackermann function there
M?G?HgtGgGtHgtG1hH).v*"gF"Q
21:45
back
And great
Let a(b) = g(...g(g(g(0,1),2),...b), where g is still the Ackermann function. I'm doing a_Q(Q)
Funny that you do that
4
A: Largest Number Printable

ToeofdoomHaskell - Ackermann function applied to its result 20 times - 99 characters This is the best haskell solution I can come up with based on the ackermann function - you may notice some similarities to n.m.'s solution, the i=round$log pi was inspired from there and the rest is coincidence :D i=rou...

A similar Ackermann nesting thing
And you could most likely manage to make an Ackermann post there
I'm at 122 bytes right now, so I'd have to cut out a lot of things
Yeah
The main reason I'm hosting this challenge is because 100 bytes is just too small to do anything serious.
with the ackermann nesting that I'm doing, how do I stack up against famous numbers?
21:51
a(64) < Graham's number < a(65)
Not many more famous numbers in this area until you get way bigger.
g(n,n) ~ f_w(n)
a(n) ~ n applications of n=g(n,n) ~ n applications of n=f_w(n) = f_(w+1)(n)
Repeated applications of n=a(n) will get you up to f_(w+2)(n)
etc.
Generalized enough and you can get to f_(w2)(n) = f_(w+n)(n)
I'd hope that I'm a little bigger than g(n,n) with the nesting
But I guess not enough to stack up against f_(w+3)?
Funnily enough, it's more byte-efficient for me to do the nesting than to not do the nesting
so I'm keeping it regardless
You'd have to generalize some function such that a(k,n) = n nestings of n=a(k-1,n), where a(0,n) = a(n)
If you'd like a tip from me on how I did one of my past programs...
In ruby, I took advantage of something along the lines of n.times{puts all the functions in here}
By the way, I have no clue how ψ_0(X(Ω_(M+X_(Ω_(M+1)^Ω_(M+1)))))+29 compares to any of the numbers we've been talking about
21:56
Haha
Yes... you have no clue indeed....
Want to try and just start comprehending the madness of that?
Sure :P
Btw
Did you know that my program doesn't apply any sort of n.times{} in the major portions of my code?
I'll show you the Hardy hierarchy, which is what I implemented.
H(0,n) = n
H(x+1,n) = H(x,n+1)
H(x,n) = H(x[n],n) if x is a limit
> if x is a limit
elaborate?
ω (w) is a limit
remember how f_ω(n) = f_n(n)?
19:00 - 22:0022:00 - 00:00

  last day (253 days later) »