RosettaCodeData/Task/Perfect-shuffle/Sidef/perfect-shuffle.sidef

15 lines
298 B
Plaintext

func perfect_shuffle(deck) {
deck/2 -> zip.flat
}
[8, 24, 52, 100, 1020, 1024, 10000].each { |size|
var deck = @(1..size)
var shuffled = deck
var n = (1..Inf -> lazy.first {
(shuffled = perfect_shuffle(shuffled)) == deck
})
printf("%5d cards: %4d\n", size, n)
}