Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #4255

[SOLUTION] Tri de crêpes

From Olivier Miakinen <om+news@miakinen.net>
Newsgroups fr.comp.lang.python
Subject [SOLUTION] Tri de crêpes
Date 2024-12-03 15:08 +0100
Organization There's no cabale
Message-ID <vin3d6$1mos$1@cabale.usenet-fr.net> (permalink)
References <vikoqt$3eo5p$1@dont-email.me> <vimqp4$1h59$1@cabale.usenet-fr.net>

Show all headers | View raw


Solution du problème, ne pas lire tant que tu veux encore chercher.

En revanche, toute proposition d'amélioration est la bienvenue.


Le 03/12/2024 12:41, Olivier Miakinen a écrit :
> 
> https://fr.wikipedia.org/wiki/Tri_de_cr%C3%AApes

=============================================================================
#!/usr/bin/python3

import random

nb = int(input('Nombre de crêpes : '))

crepes = list(range(0, nb))     # crepes = [0, 1, ..., nb-1]
random.shuffle(crepes)          # là elles sont probablement dans le désordre

desordre = nb   # nombre de crêpes non triées

# Boucle infinie, mais dont on sortira par exit(0) quand tout sera trié.
while True:
    # Les dernières crêpes sont dans l'ordre si crepes[i] == i
    while desordre > 0 and crepes[desordre - 1] == desordre - 1:
        desordre = desordre - 1

    print("Les crêpes sont dans l'ordre suivant :", crepes,
            f"({nb - desordre} ok)")

    ###################################################################
    # Le seul point de sortie du programme est ici
    ###################################################################
    if desordre == 0:
        print("Les crêpes sont bien ordonnées.")
        exit(0)
    ###################################################################

    # On va chercher la plus grande crêpe parmi celles qui ne sont
    # pas encore triées
    maxcrepe = max(crepes[:desordre])
    maxindex = crepes.index(maxcrepe)
    if maxindex == 0:
        # La plus grande des crêpes non triées est en haut de la pile,
        # on va renverser l'ensemble des crêpes non triées pour la
        # mettre en bas.
        retourner = desordre
    else:
        # Le plus grande des crêpes non triées n'est pas en haut de la
        # pile, on va retourner suffisamment de crêpes pour l'y mettre.
        retourner = maxindex + 1

    print(f"On retourne {retourner} crêpes.")
    crepes[:retourner] = crepes[:retourner][::-1]

# Cette ligne du programme n'est jamais atteinte
=============================================================================

-- 
Olivier Miakinen

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Les raisons de ma question de ce jour : panne de mémoire avec list et str Dominique <dominique.sextant@orange.fr.invalid> - 2024-12-02 17:55 +0100
  Re: Les raisons de ma question de ce jour : panne de mémoire avec list et str Olivier Miakinen <om+news@miakinen.net> - 2024-12-02 22:13 +0100
    Re: Les raisons de ma question de ce jour : panne de mémoire avec list et str Dominique <dominique.sextant@orange.fr.invalid> - 2024-12-03 07:06 +0100
      Re: Les raisons de ma question de ce jour : panne de mémoire avec list et str Olivier Miakinen <om+news@miakinen.net> - 2024-12-03 10:38 +0100
  Re: Les raisons de ma question de ce jour : panne de mémoire avec list et str Olivier Miakinen <om+news@miakinen.net> - 2024-12-02 22:48 +0100
    Re: Les raisons de ma question de ce jour : panne de mémoire avec list et str Olivier Miakinen <om+news@miakinen.net> - 2024-12-02 23:02 +0100
      Re: Les raisons de ma question de ce jour : panne de mémoire avec list et str Olivier Miakinen <om+news@miakinen.net> - 2024-12-03 10:29 +0100
    Re: Les raisons de ma question de ce jour : panne de mémoire avec list et str Dominique <dominique.sextant@orange.fr.invalid> - 2024-12-03 07:16 +0100
      Re: Les raisons de ma question de ce jour : panne de mémoire avec list et str Olivier Miakinen <om+news@miakinen.net> - 2024-12-03 11:03 +0100
  Tri de crêpes (was: Les raisons de ma question de ce jour : panne de mémoire avec list et str) Olivier Miakinen <om+news@miakinen.net> - 2024-12-03 12:41 +0100
    Re: Tri de crêpes Olivier Miakinen <om+news@miakinen.net> - 2024-12-03 12:53 +0100
    [SOLUTION] Tri de crêpes Olivier Miakinen <om+news@miakinen.net> - 2024-12-03 15:08 +0100
      Re: [SOLUTION] Tri de crêpes Dominique <dominique.sextant@orange.fr.invalid> - 2024-12-03 18:07 +0100
        Re: [SOLUTION] Tri de crêpes Olivier Miakinen <om+news@miakinen.net> - 2024-12-03 18:57 +0100
      Re: [SOLUTION] Tri de crêpes Damien Wyart <damien.wyart@free.fr> - 2024-12-04 09:31 +0100
        Re: [SOLUTION] Tri de crêpes Olivier Miakinen <om+news@miakinen.net> - 2024-12-04 12:16 +0100
          Re: [SOLUTION] Tri de crêpes Damien Wyart <damien.wyart@free.fr> - 2024-12-04 13:09 +0100
            Re: [SOLUTION] Tri de crêpes Olivier Miakinen <om+news@miakinen.net> - 2024-12-05 19:42 +0100
              Signature d'une fonction (was: [SOLUTION] Tri de crêpes) Olivier Miakinen <om+news@miakinen.net> - 2024-12-05 19:56 +0100
                Re: Signature d'une fonction Olivier Miakinen <om+news@miakinen.net> - 2024-12-06 00:34 +0100
      Trouver l'index du plus grand élément dans une liste (was: [SOLUTION] Tri de crêpes) Olivier Miakinen <om+news@miakinen.net> - 2024-12-04 12:24 +0100
      Re: [SOLUTION] Tri de crêpes Dominique <dominique.sextant@orange.fr.invalid> - 2024-12-21 18:22 +0100
      Re: [SOLUTION] Tri de crêpes Dominique <dominique.sextant@orange.fr.invalid> - 2024-12-22 06:41 +0100

csiph-web