Post by 《§》carbonara <3〖ƧƐ〗 on Sept 13, 2015 14:50:40 GMT
SuperAcid Array Notation
This is my own version of Wythagoras's "Dollar Function"
I define a "block" X as a string of ['s, ]'s, and natural numbers.
I give the following rules, where X is any block:
a::0X = a::X
a::bX = a::(a::(a:...(a::X)...)::X)::X)::X)::X with b nestings
a::X = a::Y where Y is X's expanded form
Block expansion work as following:
Every single time you call one of the following rules, "a" increase by 1
Let Xk be a group delimited by []'s
Let copy(S,1)=S and copy(S,n+1) = S+copy(S,n) where + is string concatenation
Each bracket ] can have a level k (we note ]k)
The level of the last bracket of any group is the level of the group (noted Xlevel)
a) [0]0 = a+1
If the first "..." does not contain any natural number:
b) [...X1X2X30...] = copy("[...X1X2X3...]",a)
c) [...X1X2X3(k+1)...] = copy("[kX1kX2kX3k...]",a)
If there isn't any natural in the block and X1 does not has the form [0]k:
d) [X1X2X3...] = copy("[Y1X2X3...]",a) where Y1 is X1's expanded form (we keep using/increasing the same "a" while expanding X1)
If X1 has the form [0]k+1:
Let S be the level-k block of all blocks right after the "a::"
Let S' be that array with [0]k+1 remplaced by [0]k
e) [[0]k+1X2X3...] = copy("[[S']kX2X3...]",a)
If X1 has form [0]Y where Y is a block:
Let S be the level-Z block of all blocks right after the "a::" where Z is Y's expanded form
Let S' be that array with [0]Y remplaced by [0]Z
f) [[0]YX2X3...] = copy("[[S']ZX2X3...]",a)
Now I define the following sequence:
S0 = [[0]0]
Sk+1 = [[0]Sk]
And [0 ; 1] = Sa
Now you can go for [[1 ; 1]] = [[0 ; 1][0 ; 1] ... [0 ; 1] [0 ; 1]] and so on (old rules still apply)
Beyond?
Let D0 = [[0 ; 1]] and Dn+1 = [[0 ; 1]Dn]
Then [[0 ; 2]] = Da
From there we can go to [[0 ; 3]], [[0 ; 4]], etc, and [[0 ; X]] => [[0 ; Y]] where Y is X's expanded form
I'll stop here... for the moment
Now, a function:
T0 = [0 ; 1]
Tn+1 = [0 ; Tn]Tn
SuperAcid1(k) = k::[Tk]
SuperAcidn+1(k) = SuperAcidn(k::[TSuperAcidn(k)])
Also the SuperAcid Number:
SAN = SuperAcidSuperAcid100(1010100)(1010100)
which is, huh, very big :V
Bonus: Modified Ackermann function
This is my stronger version of the Ackermann function.
I define it as following:
- MAF(0,0,0) = 3
- MAF(x,0,0) = 3x+3
- MAF(0,0,z) = MAF(z,MAF(0,0,z-1),z-1)
- MAF(x,0,z) = MAF(x,MAF(x-1,0,z),z-1)
- MAF(0,y,z) = MAF(MAF(0,y-1,z),y-1,z)
- MAF(x,y,z) = MAF(MAF(x-1,y,z),y-1,z)
Rules can be simplified without too much problem, but I don't really care
I believe it to reach fω2(n) in the fast-growing hiearchy. It's pretty much nothing compared to SAN though :V
This is my own version of Wythagoras's "Dollar Function"
I define a "block" X as a string of ['s, ]'s, and natural numbers.
I give the following rules, where X is any block:
a::0X = a::X
a::bX = a::(a::(a:...(a::X)...)::X)::X)::X)::X with b nestings
a::X = a::Y where Y is X's expanded form
Block expansion work as following:
Every single time you call one of the following rules, "a" increase by 1
Let Xk be a group delimited by []'s
Let copy(S,1)=S and copy(S,n+1) = S+copy(S,n) where + is string concatenation
Each bracket ] can have a level k (we note ]k)
The level of the last bracket of any group is the level of the group (noted Xlevel)
a) [0]0 = a+1
If the first "..." does not contain any natural number:
b) [...X1X2X30...] = copy("[...X1X2X3...]",a)
c) [...X1X2X3(k+1)...] = copy("[kX1kX2kX3k...]",a)
If there isn't any natural in the block and X1 does not has the form [0]k:
d) [X1X2X3...] = copy("[Y1X2X3...]",a) where Y1 is X1's expanded form (we keep using/increasing the same "a" while expanding X1)
If X1 has the form [0]k+1:
Let S be the level-k block of all blocks right after the "a::"
Let S' be that array with [0]k+1 remplaced by [0]k
e) [[0]k+1X2X3...] = copy("[[S']kX2X3...]",a)
If X1 has form [0]Y where Y is a block:
Let S be the level-Z block of all blocks right after the "a::" where Z is Y's expanded form
Let S' be that array with [0]Y remplaced by [0]Z
f) [[0]YX2X3...] = copy("[[S']ZX2X3...]",a)
Now I define the following sequence:
S0 = [[0]0]
Sk+1 = [[0]Sk]
And [0 ; 1] = Sa
Now you can go for [[1 ; 1]] = [[0 ; 1][0 ; 1] ... [0 ; 1] [0 ; 1]] and so on (old rules still apply)
Beyond?
Let D0 = [[0 ; 1]] and Dn+1 = [[0 ; 1]Dn]
Then [[0 ; 2]] = Da
From there we can go to [[0 ; 3]], [[0 ; 4]], etc, and [[0 ; X]] => [[0 ; Y]] where Y is X's expanded form
I'll stop here... for the moment
Now, a function:
T0 = [0 ; 1]
Tn+1 = [0 ; Tn]Tn
SuperAcid1(k) = k::[Tk]
SuperAcidn+1(k) = SuperAcidn(k::[TSuperAcidn(k)])
Also the SuperAcid Number:
SAN = SuperAcidSuperAcid100(1010100)(1010100)
which is, huh, very big :V
Bonus: Modified Ackermann function
This is my stronger version of the Ackermann function.
I define it as following:
- MAF(0,0,0) = 3
- MAF(x,0,0) = 3x+3
- MAF(0,0,z) = MAF(z,MAF(0,0,z-1),z-1)
- MAF(x,0,z) = MAF(x,MAF(x-1,0,z),z-1)
- MAF(0,y,z) = MAF(MAF(0,y-1,z),y-1,z)
- MAF(x,y,z) = MAF(MAF(x-1,y,z),y-1,z)
Rules can be simplified without too much problem, but I don't really care
I believe it to reach fω2(n) in the fast-growing hiearchy. It's pretty much nothing compared to SAN though :V