Perfect shuffle: Difference between revisions

→‎{{header|Raku}}: less verbose, faster
(→‎{{header|Raku}}: less verbose, faster)
Line 2,480:
=={{header|Raku}}==
(formerly Perl 6)
<lang perl6>for 8, 24, 52, 100, 1020, 1024, 10000 -> $size {
 
my ($n, @deck) = 1, |^$size;
{{trans|Perl}}
$n++ until [<] @deck = flat [Z] @deck.rotor: @deck/2;
 
<lang perl6>sub perfect-shuffle (@deck) {
my $mid = @deck / 2;
flat @deck[0 ..^ $mid] Z @deck[$mid .. *];
}
 
for 8, 24, 52, 100, 1020, 1024, 10000 -> $size {
my @deck = ^$size;
my $n;
repeat until [<] @deck {
$n++;
@deck = perfect-shuffle @deck;
}
printf "%5d cards: %4d\n", $size, $n;
}</lang>
2,392

edits