|
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)
|
|
}
|