Data update
This commit is contained in:
parent
4d5544505c
commit
4924dd0264
3073 changed files with 55820 additions and 4408 deletions
23
Task/Topswops/Prolog/topswops.pro
Normal file
23
Task/Topswops/Prolog/topswops.pro
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
topswops(N, MaximumSwaps) :-
|
||||
numlist(1, N, Cards),
|
||||
aggregate_all(max(Swaps), (
|
||||
permutation(Cards, Shuffled),
|
||||
topswops_(Shuffled, 0, Swaps)
|
||||
), MaximumSwaps).
|
||||
|
||||
topswops_([Card | Cards0], Swaps0, Swaps) :-
|
||||
( Card = 1
|
||||
-> Swaps0 = Swaps
|
||||
; succ(Swaps0, Swaps1),
|
||||
length(Prefix, Card),
|
||||
append(Prefix, Suffix, [Card | Cards0]),
|
||||
reverse(Prefix, Reversed),
|
||||
append(Reversed, Suffix, Cards),
|
||||
topswops_(Cards, Swaps1, Swaps)
|
||||
).
|
||||
|
||||
main :-
|
||||
foreach(
|
||||
( between(1, 10, N), topswops(N, MaximumSwaps) ),
|
||||
format("~w: ~w~n", [N, MaximumSwaps])
|
||||
).
|
||||
Loading…
Add table
Add a link
Reference in a new issue