Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,40 @@
|
|||
const nmax = 12
|
||||
|
||||
function r!(n, s, pos, count)
|
||||
if n == 0
|
||||
return false
|
||||
end
|
||||
c = s[pos + 1 - n]
|
||||
count[n + 1] -= 1
|
||||
if count[n + 1] == 0
|
||||
count[n + 1] = n
|
||||
if r!(n - 1, s, pos, count) == 0
|
||||
return false
|
||||
end
|
||||
end
|
||||
s[pos + 1] = c
|
||||
pos += 1
|
||||
true
|
||||
end
|
||||
|
||||
function superpermutation(n)
|
||||
count = zeros(nmax)
|
||||
pos = n
|
||||
superperm = zeros(UInt8, n < 2 ? n : mapreduce(factorial, +, 1:n))
|
||||
for i in 0:n-1
|
||||
count[i + 1] = i
|
||||
superperm[i + 1] = Char(i + '0')
|
||||
end
|
||||
count[n + 1] = n
|
||||
while r!(n, superperm, pos, count) ; end
|
||||
superperm
|
||||
end
|
||||
|
||||
function testsuper(N, verbose=false)
|
||||
for i in 0:N-1
|
||||
s = superpermutation(i)
|
||||
println("Superperm($i) has length $(length(s)) ", (verbose ? String(s) : ""))
|
||||
end
|
||||
end
|
||||
|
||||
testsuper(nmax)
|
||||
Loading…
Add table
Add a link
Reference in a new issue