Best shuffle: Difference between revisions

m
Line 425:
procedure scramble(s)
t := s
# every !t :=: ?t # Uncomment this line for a random best shuffle
every i := 1 to *t do
every j := (1 to i-1) | (i+1 to *t) do
if (t[i] ~== s[j]) & (s[i] ~== t[j]) then {break t[i] :=: t[j]
t[i] :=: t[j]
break
}
return t || " ("||unchanged(s,t)||")"
end