24 lines
643 B
Text
24 lines
643 B
Text
F flatten(lst)
|
||
[Int] r
|
||
L(sublst) lst
|
||
L(i) sublst
|
||
r [+]= i
|
||
R r
|
||
|
||
F magic_shuffle(deck)
|
||
V half = deck.len I/ 2
|
||
R flatten(zip(deck[0 .< half], deck[half ..]))
|
||
|
||
F after_how_many_is_equal(start, end)
|
||
V deck = magic_shuffle(start)
|
||
V counter = 1
|
||
L deck != end
|
||
deck = magic_shuffle(deck)
|
||
counter++
|
||
R counter
|
||
|
||
print(‘Length of the deck of cards | Perfect shuffles needed to obtain the same deck back’)
|
||
L(length) (8, 24, 52, 100, 1020, 1024, 10000)
|
||
V deck = Array(0 .< length)
|
||
V shuffles_needed = after_how_many_is_equal(deck, deck)
|
||
print(‘#<5 | #.’.format(length, shuffles_needed))
|