Maison > développement back-end > Tutoriel Python > Comment puis-je générer efficacement des permutations uniques d'un multiset ?

Comment puis-je générer efficacement des permutations uniques d'un multiset ?

Linda Hamilton
Libérer: 2024-12-13 10:53:12
original
762 Les gens l'ont consulté

How Can I Efficiently Generate Unique Permutations of a Multiset?

Comptage des permutations uniques

La fonction de permutations d'Itertools traite les éléments comme uniques par leur position et non par leur valeur. En conséquence, des doublons peuvent apparaître, comme dans l'exemple fourni : [(1, 1, 1), (1, 1, 1), (1, 1, 1), (1, 1, 1), (1 , 1, 1), (1, 1, 1)].

Éviter les doublons

La demande initiale concernait un algorithme qui évite ces doublons sans recourir au post-filtrage en raison du grand nombre de permutations impliquées.

Permutations multiset dans sympy

Pour de tels cas, sympy propose l'itérateur multiset_permutations . Contrairement aux permutations, cet itérateur traite les éléments comme uniques en fonction de leurs valeurs et non de leurs positions.

Considérez les exemples suivants :

>>> from sympy.utilities.iterables import multiset_permutations
>>> list(multiset_permutations([1,1,1]))
[[1, 1, 1]]
>>> list(multiset_permutations([1,1,2]))
[[1, 1, 2], [1, 2, 1], [2, 1, 1]]
Copier après la connexion

Comme vous pouvez le voir, multiset_permutations ne produit que des permutations uniques.

🎜>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal