Data update
This commit is contained in:
parent
81fd053722
commit
52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions
20
Task/Best-shuffle/SETL/best-shuffle.setl
Normal file
20
Task/Best-shuffle/SETL/best-shuffle.setl
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
program find_best_shuffle;
|
||||
tests := ["tree", "abracadabra", "seesaw", "elk", "grrrrrr", "up", "a"];
|
||||
loop for test in tests do
|
||||
print(test, '->', sh := best_shuffle(test), same(test, sh));
|
||||
end loop;
|
||||
|
||||
proc best_shuffle(s);
|
||||
r := s;
|
||||
loop for i in [1..#s] do
|
||||
loop for j in [1..#s] | i /= j and s(i) /= r(j) and s(j) /= r(i) do
|
||||
[r(i), r(j)] := [r(j), r(i)];
|
||||
end loop;
|
||||
end loop;
|
||||
return r;
|
||||
end proc;
|
||||
|
||||
proc same(r, s);
|
||||
return 0 +/[1 : i in [1..#s] | r(i) = s(i)];
|
||||
end proc;
|
||||
end program;
|
||||
Loading…
Add table
Add a link
Reference in a new issue