NOMBRES - Curiosités, théorie et usages

 

Accueil                           DicoNombre            Rubriques           Nouveautés      Édition du: 06/05/2019

Orientation générale        DicoMot Math          Atlas                   Références                     M'écrire

Barre de recherche          DicoCulture              Index alphabétique                      Brèves de Maths

 

LOGIQUE

 

Débutants

Général

Méthode de TRI

 

Glossaire

Général

 

 

INDEX

 

Programmation

 

Python

 

Logique

 

Introduction

Tri avec Python et Maple

Tri rapide (Quiksort)

 

Sommaire de cette page

PYTHON

>>> Tri de listes simples

>>> Tri de listes imbriquées

MAPLE

>>> Tri de listes simples

>>> Tri de listes imbriquées

>>> Sélection complexe dans les nombres

>>> Bilan

 

 

 

 

 

Programmation du TRI

de LISTES de NOMBRES

avec Python et avec Maple

 

Quelques indications pour commencer à programmer les tris de listes de nombres. Comparaison entre les logiciels Python et Maple.

 

 

Tri de listes simples – Python

Éditeur

 

Mémoriser (CTRL S)

puis Lancer l'exécution (F5)

 

Interpréteur

 

La liste est une suite de nombres (ou autres objets, comme du texte) placée entre crochets droits.

L'instruction sort trie les nombres par ordre croissant (sort veut dire trier en anglais).

 

L'instruction L.sort() trie la liste L et place le résultat dans L. L'affectation est automatique.

Notez que la forme de l'instruction n'est pas: L: = sort(L) comme avec Maple.

 

Ne pas oublier de spécifier l'impression (print) pour obtenir un affichage dans l'interpréteur.

 

En Python, il faut mémoriser (fichier en .py) le programme rédigé dans l'éditeur, puis lancer son exécution (Run ou F5): le résultat apparait dans une fenêtre spéciale (interpréteur).

 

L'introduction de l'instruction reverse permet un tri dans l'ordre décroissant.

Tri de la fusion de plusieurs listes.

Les trois listes sont concaténées puis la nouvelle liste est triée.

 

Tri de mots selon leur longueur.

Introduction de key = len (clé = longueur).

 

Pour les nombres, utilisez simplement sort.

Tri d'une liste selon la taille puis dans l'ordre croissant du premier élément.

 

 

Tri de listes imbriquées – Python

 

Tri naturel selon la valeur du premier élément.

Que les suites internes soient des tuples ou des listes.

 

Une liste est une suite modifiable d'éléments (crochets).

Un tuple est une suite fixe d'éléments (parenthèses).

 

Programme de tri d'une liste en prenant le deuxième élément comme critère.

On définit la fonction Rang qui isole le deuxième élément (en Python on compte à partir de 0).

Dans l'instruction sort, on précise que la clé du tri est le deuxième élément des sous-suites de nombres (tuples ou listes).

 

 

 

Tri de listes simples – Maple

 

Une liste est une suite d'éléments. La suite est entourée de crochets droits.

L'instruction sort (qui veut dire tri en anglais) ordonne les nombres par ordre croissant.

En Maple, on passe à la ligne avec Shift-Entrée et on exécute directement en appuyant sur Entrée. Le résultat est sur la même page.

 

 Cette instruction ordonne les nombres puis les mots avec capitales et les mots en minuscules.

Maple dispose d'une autre race de liste appelée ensemble (set en anglais). Elle est entourée d'accolades.

Elle est automatiquement triée dans l'ordre croissant et, les doublons sont éliminés.

 

Comment transformer une liste en un ensemble? L'instruction op(L) élimine les crochets et la suite obtenue est placée entre accolades.

 

Pratique pour tester si tous les nombres d'une liste sont différents.

L'instruction nops compte les éléments d'une liste ou d'un ensemble.

 

Exemple ici: il y a cinq éléments dans la liste et cinq éléments dans l'ensemble: tous les éléments de la liste sont donc différents.

 

Utilisation des instructions Reverse pour trier dans l'ordre décroissant.

Et, de Rotate pour exécuter une permutation circulaire de k positions.

 

Le module (ou package) ListTools (outils appliqués aux listes) comporte de nombreuses facilités de manipulation des listes comme Reverse ou Rotate.

Comment trier la réunion de deux listes: tri de la simple concaténation des deux listes.

 

 

Tri de listes imbriquées – Maple

 

L'instruction sort trie les nombres puis les listes imbriquées selon la quantité d'éléments et pour chaque quantité par ordre croissant du premier élément.

 

Pas de tri dans les listes internes.

Par exemple: la grande sous-liste commençant par 9 est la dernière car comportant cinq éléments, plus que la précédente qui n'a que deux éléments.

Mais, pas d'action interne à ces cinq éléments.

Ici, la liste imbriquée est définie par ses sous-listes (L[ i ]).

La liste initiale est reconstituée avec l'instruction seq appliquée au 5 sous-listes (i = 1..5).

On demande le tri (sort) de cette liste reconstituée.

 

 

Une procédure qui permet de trier des listes imbriquées selon le premier élément,  quelle que soit la longueur de la sous-liste.

 

Dans l'en-tête de la procédure, les quatre points indique que L et M sont des listes. La procédure ne s'exécute que si c'est le cas.

Un moyen de trier une liste imbriquée, avec sous-listes de mêmes longueurs, par ordre croissant du deuxième élément.

Une procédure qui échange des éléments désignés dans la liste.

 

Le premier exemple avec {1, 2, 3, 4} retourne les quatre premiers éléments sans toucher les autres.

Le second exemple, les éléments en position 2, 4, 6, 8 de la liste qui vient d'être triée sont croisés.

 

Source de ce code: Rosettacode

 

 

Sélection complexe dans un nombre – Maple

Par calcul et instruction compacte

 

 

Comment former un nombre avec les k derniers chiffres d'un nombre inversés ?

 

Chinv extrait les k derniers chiffres et

Ch reforme le nombre avec ces chiffres.

 

Voir Extraction des chiffres

Notez que pour disposer des k derniers chiffres dans l'ordre, il suffit que calculer modulo 10k.

 

Notez aussi que disposant de l'instruction convert, on a plus simple que ci-dessus.

Le programme présenté ci-dessus est nécessaire sans instruction de transformation directe du nombre en chiffres.

 

 

Bilan

Comme pour la majorité des langages de programmation, Python et Maple possèdent des facilités de tri. L'usage le plus courant se contente de l'instruction sort. Il existe de nombreux attributs à cette instruction qui permettent de spécifier des tris particuliers. À découvrir à l'usage.

 

 

Merci à Jean-Jacques Charre pour l'idée de cette page

 

  

Suite

*    Algorithme de tri Quicksort

*    Algorithmes

*    Formes permutées

*    Outils de la logique

*    ProgrammationIndex

*    Tri et problème polynomial

Voir

*    Énigmes et paradoxes

*    Fractales

*    Intelligence artificielle

*    Raisonnement

Cette page

http://villemin.gerard.free.fr/Wwwgvmm/Logique/TriPyMa.htm