Le 02/12/2024 17:55, Dominique a écrit :
La 3e énigme parle d'un crêpier amateur qui empile des crêpes de tailles
inégales. Il doit ensuite les empiler par ordre croissant, de la plus
grande en bas à la plus petite en haut. Pour ce faire, il n'a qu'une
spatule avec laquelle il peut prendre une pile d'une ou plusieurs
crêpes, la retourner comme il veut et reclasser ses crêpes.
L'idée est alors de chercher la plus grande crêpe, la retourner avec la
pile qui est a-dessus, puis de la retourner à nouveau, prendre cette
pile moins la plus grande qui est en bas, la retourner plus la remettre
puis la retourner encore sur la pile de départ, etc. Je ne sais pas si
je suis clair...
Pour peut-être un peu plus de clarté :
https://fr.wikipedia.org/wiki/Tri_de_cr%C3%AApesJ'ai fait un programme d'une quarantaine de lignes, commentaires compris,
qui fait cela. Je ne te donne pas le code puisque l'idée est que tu le
trouves par toi-même, mais je vais te donner un exemple d'affichage
lorsque je le lance :
=======================================================================
$ ./crepier.py
Nombre de crêpes : 10
Les crêpes sont dans l'ordre suivant : [2, 4, 1, 9, 0, 3, 5, 6, 8, 7]
On retourne 4 crêpes.
Les crêpes sont dans l'ordre suivant : [9, 1, 4, 2, 0, 3, 5, 6, 8, 7]
On retourne 10 crêpes.
Les crêpes sont dans l'ordre suivant : [7, 8, 6, 5, 3, 0, 2, 4, 1, 9]
On retourne 2 crêpes.
Les crêpes sont dans l'ordre suivant : [8, 7, 6, 5, 3, 0, 2, 4, 1, 9]
On retourne 9 crêpes.
Les crêpes sont dans l'ordre suivant : [1, 4, 2, 0, 3, 5, 6, 7, 8, 9]
On retourne 2 crêpes.
Les crêpes sont dans l'ordre suivant : [4, 1, 2, 0, 3, 5, 6, 7, 8, 9]
On retourne 5 crêpes.
Les crêpes sont dans l'ordre suivant : [3, 0, 2, 1, 4, 5, 6, 7, 8, 9]
On retourne 4 crêpes.
Les crêpes sont dans l'ordre suivant : [1, 2, 0, 3, 4, 5, 6, 7, 8, 9]
On retourne 2 crêpes.
Les crêpes sont dans l'ordre suivant : [2, 1, 0, 3, 4, 5, 6, 7, 8, 9]
On retourne 3 crêpes.
Les crêpes sont dans l'ordre suivant : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Les crêpes sont bien ordonnées.
=======================================================================
Je précise que mon programme utilise en tout et pour tout un seul
tableau de nombres, donc aucun tableau intermédiaire. Ah, je vais quand
même te donner le tout début de mon programme, celui qui s'occupe de
l'initialisation du tableau.
=======================================================================
#!/usr/bin/python3
import random
nb = int(input('Nombre de crêpes : '))
crepes = list(range(0, nb))
random.shuffle(crepes)
=======================================================================
-- Olivier Miakinen