Défi:
Entrée: liste d'entiers positifs distincts dans la plage .
Sortie: Un entier: le nombre de fois que la liste est réorganisée . Pour une liste, cela signifie que la liste est divisée en deux moitiés, et ces moitiés sont entrelacées (c'est-à-dire que le réarrangement rapide de la liste [1,2,3,4,5,6,7,8,9,10]
entraînerait une fois [1,6,2,7,3,8,4,9,5,10]
, donc pour ce défi, l'entrée en [1,6,2,7,3,8,4,9,5,10]
résulterait 1
).
Règles du défi:
- Vous pouvez supposer que la liste ne contiendra que des entiers positifs dans la plage (ou si vous choisissez d'avoir des listes d'entrée indexées 0).
- Vous pouvez supposer que toutes les listes d'entrées seront soit une liste mélangée à un riffle valide, soit une liste triée qui n'est pas mélangée (dans ce cas, la sortie l'est
0
). - Vous pouvez supposer que la liste d'entrées contiendra au moins trois valeurs.
Exemple étape par étape:
Contribution: [1,3,5,7,9,2,4,6,8]
Le décompresser devient une fois:, [1,5,9,4,8,3,7,2,6]
car chaque élément pair indexé 0 vient en premier [1, ,5, ,9, ,4, ,8]
, puis tous les éléments indexés 0 impairs après cela [ ,3, ,7, ,2, ,6, ]
.
La liste n'est pas encore commandée, nous continuons donc:
Dégrouper à nouveau la liste devient: devient à [1,9,8,7,6,5,4,3,2]
nouveau: [1,8,6,4,2,9,7,5,3]
Alors: [1,6,2,7,3,8,4,9,5]
Et enfin [1,2,3,4,5,6,7,8,9]
:, qui est une liste ordonnée, nous avons donc terminé de décompresser.
Nous avons décompressé l'original [1,3,5,7,9,2,4,6,8]
cinq fois pour y accéder [1,2,3,4,5,6,7,8,9]
, donc la sortie est 5
dans ce cas.
Règles générales:
- C'est du code-golf , donc la réponse la plus courte en octets est gagnante.
Ne laissez pas les langues de golf de code vous décourager de publier des réponses avec des langues autres que le golf de code. Essayez de trouver une réponse aussi courte que possible pour «n'importe quel» langage de programmation. - Des règles standard s'appliquent à votre réponse avec des règles d'E / S par défaut , vous êtes donc autorisé à utiliser STDIN / STDOUT, des fonctions / méthodes avec les paramètres appropriés et des programmes complets de type retour. Ton appel.
- Les failles par défaut sont interdites.
- Si possible, veuillez ajouter un lien avec un test pour votre code (par exemple TIO ).
- De plus, l'ajout d'une explication à votre réponse est fortement recommandé.
Cas de test:
Input Output
[1,2,3] 0
[1,2,3,4,5] 0
[1,3,2] 1
[1,6,2,7,3,8,4,9,5,10] 1
[1,3,5,7,2,4,6] 2
[1,8,6,4,2,9,7,5,3,10] 2
[1,9,8,7,6,5,4,3,2,10] 3
[1,5,9,4,8,3,7,2,6,10] 4
[1,3,5,7,9,2,4,6,8] 5
[1,6,11,5,10,4,9,3,8,2,7] 6
[1,10,19,9,18,8,17,7,16,6,15,5,14,4,13,3,12,2,11,20] 10
[1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20] 17
[1,141,32,172,63,203,94,234,125,16,156,47,187,78,218,109,249,140,31,171,62,202,93,233,124,15,155,46,186,77,217,108,248,139,30,170,61,201,92,232,123,14,154,45,185,76,216,107,247,138,29,169,60,200,91,231,122,13,153,44,184,75,215,106,246,137,28,168,59,199,90,230,121,12,152,43,183,74,214,105,245,136,27,167,58,198,89,229,120,11,151,42,182,73,213,104,244,135,26,166,57,197,88,228,119,10,150,41,181,72,212,103,243,134,25,165,56,196,87,227,118,9,149,40,180,71,211,102,242,133,24,164,55,195,86,226,117,8,148,39,179,70,210,101,241,132,23,163,54,194,85,225,116,7,147,38,178,69,209,100,240,131,22,162,53,193,84,224,115,6,146,37,177,68,208,99,239,130,21,161,52,192,83,223,114,5,145,36,176,67,207,98,238,129,20,160,51,191,82,222,113,4,144,35,175,66,206,97,237,128,19,159,50,190,81,221,112,3,143,34,174,65,205,96,236,127,18,158,49,189,80,220,111,2,142,33,173,64,204,95,235,126,17,157,48,188,79,219,110,250]
45
[1,3,5,7,9,2,4,6,8]
est de longueur 9, mais j'en ajouterai quelques autres pour les longueurs 7 et 11 peut-être. EDIT: Ajout des cas de test [1,3,5,7,2,4,6] = 2
(longueur 7) et [1,6,11,5,10,4,9,3,8,2,7] = 6
(longueur 11). J'espère que ça t'as aidé.
[1,6,2,7,3,8,4,9,5,10]
ou [6,1,7,2,8,3,9,4,10,5]
sont possibles. Dans mon défi, cela signifie que la carte du haut restera toujours la carte du haut, donc c'est en fait un peu un con-trick .. Je n'ai jamais vu quelqu'un utiliser uniquement des riffle-shuffles pour mélanger un jeu de cartes. Habituellement, ils utilisent également un autre type de mélange entre les deux. Quoi qu'il en soit, il est trop tard pour changer le défi maintenant, donc pour ce défi, la carte du haut restera toujours la carte du haut après un mélange rapide.