Data update
This commit is contained in:
parent
72eb4943cb
commit
4d5544505c
2347 changed files with 62432 additions and 16731 deletions
19
Task/Perfect-shuffle/PascalABC.NET/perfect-shuffle.pas
Normal file
19
Task/Perfect-shuffle/PascalABC.NET/perfect-shuffle.pas
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
function shuffle(deck: list<integer>) := deck[:deck.Count div 2].Interleave(deck[deck.Count div 2:]);
|
||||
|
||||
function number(size: integer): integer;
|
||||
begin
|
||||
assert(size mod 2 = 0, 'size must be even');
|
||||
var start := Range(1, size).ToList;
|
||||
var deck := Range(1, size).ToList;
|
||||
var counter := 0;
|
||||
repeat
|
||||
deck := shuffle(deck).ToList;
|
||||
counter += 1;
|
||||
until deck.SequenceEqual(start);
|
||||
result := counter;
|
||||
end;
|
||||
|
||||
begin
|
||||
foreach var size in |8, 24, 52, 100, 1020, 1024, 10_000| do
|
||||
writeln(size:5, ': ', number(size):4);
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue