Outil pour calculer le rang d'une permutation d'un ensemble. Le rang d'une permutation est le numéro associé à celle-ci dans l'ordre de génération des permutations.
Rang d'une Permutation - dCode
Catégorie(s) : Combinatoire
dCode est gratuit et ses outils sont une aide précieuse dans les jeux, les maths, les énigmes, les géocaches, et les problèmes à résoudre au quotidien !
Une suggestion ? un problème ? une idée ? Écrire à dCode !
Le rang d'une permutation est un entier qui représente la position d'une permutation spécifique dans l'ordre lexicographique de toutes les permutations possibles d'un ensemble d'éléments distincts.
A partir de la liste de toutes les permutations possibles d'un ensemble (ou arrangements), il est possible de trier cet index par ordre croissant. Le rang d'une permutation est la position de celle-ci dans la liste triée.
Exemple : L'ensemble A,B,C a pour permutations :
0 | ABC |
1 | ACB |
2 | BAC |
3 | BCA |
4 | CAB |
5 | CBA |
Comme il semble difficile de lister toutes les permutations lorsqu'il y a beaucoup d'éléments. Il existe une méthode mathématique pour réaliser ce calcul.
Soit une permutation $ P $ dans l'ensemble $ E $ de taille $ t $.
Exemple : La permutation B,A,C dans l'ensemble initial A,B,C de taille $ t = 3 $.
Pour chaque lettre, calculer la position $ p $ dans l'ensemble $ E $, calculer $ s = p \times (t-1)! $ et retirer la lettre dans l'ensemble $ E $ (la taille $ t $ diminue). La somme des $ s $ est le rang de la permutation.
Exemple : B est en position $ 1 $ dans ABC, $ s_B = 1 \times 2! = 2 $
A est en position $ 0 $ dans AC, $ s_A = 0 \times 1! = 0 $
C est en position $ 0 $ dans C, $ s_C = 0 \times 0! = 0 $
BAC est la permutation de rang $ s_B + s_A + s_C = 2 + 0 + 0 = 2 $
Un code source qui calcule le rang dune permutation alphabétique serait : // Pseudo-code
function rankPermutation(p) {
alphabet = "abcdefghijklmnopqrstuvwxyz"
length = length(p)
rank = 0
j = 0
for i = length-1 down to 0 {
letter = p[j++]
index = position(letter, alphabet)
alphabet = alphabet[0..index] + alphabet[index+1..]
rank += index * factorial(i);
}
return rank;
}
Exemple : QWERTYUIOPASDFGHJKLZXCVBNM a pour rang lexicographique 261329910883437428257896643
dCode se réserve la propriété du code source pour "Rang d'une Permutation". Tout algorithme pour "Rang d'une Permutation", applet ou snippet ou script (convertisseur, solveur, chiffrement / déchiffrement, encodage / décodage, encryptage / décryptage, traducteur) ou toutes fonctions liées à "Rang d'une Permutation" (calculer, convertir, résoudre, décrypter / encrypter, déchiffrer / chiffrer, décoder / encoder, traduire) codés en langage informatique (Python, Java, C#, PHP, Javascript, Matlab, etc.) ou toute base de données, ou accès API à "Rang d'une Permutation" ou tout autre élément ne sont pas publics (sauf licence open source explicite type Creative Commons). Idem avec le téléchargement pour un usage hors ligne sur PC, mobile, tablette, appli iPhone ou Android.
Rappel : dCode est une ressource éducative et pédagogique, accessible en ligne gratuitement et pour tous.
Le contenu de la page "Rang d'une Permutation" ainsi que ses résultats peuvent être copiés et réutilisés librement, y compris à des fins commerciales, à condition de mentionner dCode.fr comme source.
L'export des résultats est gratuit et se fait simplement en cliquant sur les icônes d'export ⤓ (format .csv ou .txt) ou ⧉ copier-coller.
Pour citer dCode.fr sur un autre site Internet, utiliser le lien :
Dans un article scientifique ou un livre, la citation bibliographique recommandée est : Rang d'une Permutation sur dCode.fr [site web en ligne], consulté le 17/04/2025,