Path: csiph.com!pasdenom.info!usenet-fr.net!.POSTED!not-for-mail From: Olivier Miakinen Newsgroups: fr.comp.lang.python Subject: =?UTF-8?Q?Re:_[SOLUTION]_Tri_de_cr=c3=aapes?= Date: Tue, 3 Dec 2024 18:57:21 +0100 Organization: There's no cabale Lines: 81 Message-ID: References: NNTP-Posting-Host: 200.89.28.93.rev.sfr.net Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 8bit X-Trace: cabale.usenet-fr.net 1733248641 64708 93.28.89.200 (3 Dec 2024 17:57:21 GMT) X-Complaints-To: abuse@usenet-fr.net NNTP-Posting-Date: Tue, 3 Dec 2024 17:57:21 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4 In-Reply-To: Xref: csiph.com fr.comp.lang.python:4257 Le 03/12/2024 18:07, Dominique a écrit : > Le 03/12/2024 à 15:08, Olivier Miakinen a écrit : > > Promis, je ne lis pas ta solution :) > > Merci de l'avoir donnée. De rien. Note quand même que tu t'étais énormément compliqué la vie en passant par un unique nombre, transformé en chaîne de caractères, puis découpé en caractères de '0' à '9' ; utiliser directement un tableau de nombres de 0 à N-1 (ou de 1 à N, voir plus loin) est beaucoup plus simple. Et, oui, pour nous autres humains, utiliser les nombres de 1 à N est quand même plus naturel que les nombres de 0 à N-1. Pour cela, il suffit d'appliquer à mon programme précédent les modifs suivantes : ====================================================================== $ diff crepier.py crepier1.py 7c7 < crepes = list(range(0, nb)) # crepes = [0, 1, ..., nb-1] --- > crepes = list(range(1, nb+1)) # crepes = [1, 2, ..., nb] 14,15c14,15 < # Les dernières crêpes sont dans l'ordre si crepes[i] == i < while desordre > 0 and crepes[desordre - 1] == desordre - 1: --- > # Les dernières crêpes sont dans l'ordre si crepes[i] == i+1 > while desordre > 0 and crepes[desordre - 1] == desordre: ====================================================================== Et voici deux exemples de lancement du programme modifié : ====================================================================== $ ./crepier1.py Nombre de crêpes : 6 Les crêpes sont dans l'ordre suivant : [1, 5, 3, 2, 6, 4] (0 ok) On retourne 5 crêpes. Les crêpes sont dans l'ordre suivant : [6, 2, 3, 5, 1, 4] (0 ok) On retourne 6 crêpes. Les crêpes sont dans l'ordre suivant : [4, 1, 5, 3, 2, 6] (1 ok) On retourne 3 crêpes. Les crêpes sont dans l'ordre suivant : [5, 1, 4, 3, 2, 6] (1 ok) On retourne 5 crêpes. Les crêpes sont dans l'ordre suivant : [2, 3, 4, 1, 5, 6] (2 ok) On retourne 3 crêpes. Les crêpes sont dans l'ordre suivant : [4, 3, 2, 1, 5, 6] (2 ok) On retourne 4 crêpes. Les crêpes sont dans l'ordre suivant : [1, 2, 3, 4, 5, 6] (6 ok) Les crêpes sont bien ordonnées. ====================================================================== $ ./crepier1.py Nombre de crêpes : 10 Les crêpes sont dans l'ordre suivant : [3, 10, 8, 9, 2, 5, 4, 6, 7, 1] (0 ok) On retourne 2 crêpes. Les crêpes sont dans l'ordre suivant : [10, 3, 8, 9, 2, 5, 4, 6, 7, 1] (0 ok) On retourne 10 crêpes. Les crêpes sont dans l'ordre suivant : [1, 7, 6, 4, 5, 2, 9, 8, 3, 10] (1 ok) On retourne 7 crêpes. Les crêpes sont dans l'ordre suivant : [9, 2, 5, 4, 6, 7, 1, 8, 3, 10] (1 ok) On retourne 9 crêpes. Les crêpes sont dans l'ordre suivant : [3, 8, 1, 7, 6, 4, 5, 2, 9, 10] (2 ok) On retourne 2 crêpes. Les crêpes sont dans l'ordre suivant : [8, 3, 1, 7, 6, 4, 5, 2, 9, 10] (2 ok) On retourne 8 crêpes. Les crêpes sont dans l'ordre suivant : [2, 5, 4, 6, 7, 1, 3, 8, 9, 10] (3 ok) On retourne 5 crêpes. Les crêpes sont dans l'ordre suivant : [7, 6, 4, 5, 2, 1, 3, 8, 9, 10] (3 ok) On retourne 7 crêpes. Les crêpes sont dans l'ordre suivant : [3, 1, 2, 5, 4, 6, 7, 8, 9, 10] (5 ok) On retourne 4 crêpes. Les crêpes sont dans l'ordre suivant : [5, 2, 1, 3, 4, 6, 7, 8, 9, 10] (5 ok) On retourne 5 crêpes. Les crêpes sont dans l'ordre suivant : [4, 3, 1, 2, 5, 6, 7, 8, 9, 10] (6 ok) On retourne 4 crêpes. Les crêpes sont dans l'ordre suivant : [2, 1, 3, 4, 5, 6, 7, 8, 9, 10] (8 ok) On retourne 2 crêpes. Les crêpes sont dans l'ordre suivant : [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] (10 ok) Les crêpes sont bien ordonnées. ====================================================================== -- Olivier Miakinen