Best shuffle: Difference between revisions
Content added Content deleted
Line 425: | Line 425: | ||
procedure scramble(s) |
procedure scramble(s) |
||
t := s |
t := s |
||
# every !t :=: ?t # Uncomment this line for a random shuffle |
# every !t :=: ?t # Uncomment this line for a random best shuffle |
||
every i := 1 to *t do |
every i := 1 to *t do |
||
every j := (1 to i-1) | (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 |
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)||")" |
return t || " ("||unchanged(s,t)||")" |
||
end |
end |