Défi
Dans la plus petite quantité de code:
- Calculez la longueur du cycle de permutation d'un mélange parfait sur un jeu de cartes de n'importe quelle taille n (où n ≥ 2 et n est pair).
- Afficher un tableau de toutes les longueurs de cycle pour 2 ≤ n ≤ 1000 ( n pair).
Notez qu'il existe deux méthodes de base pour définir un shuffle parfait. Il y a le shuffle out , qui garde la première carte en haut et la dernière carte en bas, et il y a le shuffle in , qui déplace les première et dernière cartes d'une position vers le centre. Vous pouvez choisir si vous faites un shuffle externe ou un shuffle interne; l'algorithme est presque identique entre les deux.
- mélange aléatoire du jeu de 10 cartes: [1,2,3,4,5,6,7,8,9,10] ↦ [1,6,2,7,3,8,4,9,5, dix].
- mélange de 10 cartes: [1,2,3,4,5,6,7,8,9,10] ↦ [6,1,7,2,8,3,9,4,10, 5].
Exemple graphique
Ici, nous voyons qu'un out-shuffle sur un jeu de 20 cartes a une durée de cycle de 18 étapes. (Ceci est uniquement à titre d'illustration; votre solution n'est pas requise pour produire des cycles graphiquement.) Le jeu de 52 cartes classique, d'autre part, a une durée de cycle de mélange aléatoire de seulement 8 étapes (non illustré).
Un in-shuffle sur un jeu de 20 cartes a une durée de cycle de seulement 6 étapes.
Exemple tabulaire de sortie
Votre programme devrait produire quelque chose de similaire à cela, bien que vous puissiez choisir le format tabulaire que vous préférez. C'est pour un shuffle out:
2 1
4 2
6 4
8 3
10 6
12 10
14 12
16 4
18 8
20 18
22 6
24 11
26 20
28 18
30 28
32 5
34 10
36 12
38 36
40 12
...many lines omitted...
1000 36
Des questions
- Existe-t-il une connexion entre l'entrée numérique n et son nombre de cycles, lorsque n est une puissance de 2?
- Et quand n n'est pas une puissance de 2?
- Curieusement, un jeu de 1000 cartes a un nombre de cycles de shuffle de seulement 36, tandis qu'un jeu de 500 cartes a un nombre de cycles de shuffle de 166. Pourquoi est-ce possible?
- Quel est le plus grand nombre que vous pouvez trouver dont le nombre de cycles c est largement inférieur à n , ce qui signifie que le rapport n / c est maximisé?