Superpermutation minimisation: Difference between revisions
m
→{{header|Julia}}
Line 540:
=={{header|Julia}}==
{{trans|D}}
Runs in about 1/4 second.
<lang julia>const nmax = 12
function
count[n + 1]
return false
end
▲ count[n + 1] -= 1
▲ if count[n + 1] == 0
▲ if r!(n - 1, s) == 0
▲ end
s[pos] = c▼
pos += 1▼
return true▼
end
end
function superpermutation(n)
pos = 1
count = zeros(nmax)
pos = n
superperm = zeros(UInt8, n < 2 ? n : mapreduce(factorial, +, 1:n))
Line 570:
end
count[n + 1] = n
while r!(n, superperm, pos, count) ; end
superperm
end
|