uniqueperms

Version 1.0.0 (2,47 ko) par Jos (10584)
unique permutations of a set with repetitions
283 téléchargements
Mise à jour 27 août 2019

Afficher la licence

P = uniqueperms(V) returns all unique permutations of the N elements in the vector V. P is an array with M rows (see below) and each row of P is unique. The rows are in lexicographic order. V can be a numeric array, or cell array of strings.

Example:
uniqueperms([4 2 1 2]) % returns 12 unique permutions:
% [ 1 2 2 4 ; 1 2 4 2 ; 1 4 2 2 ; ... ; 4 2 1 2 ; 4 2 2 1]
% perms([3 2 1 2]) will return all 24 permutations of 4 elements.
uniqueperms([1 1 1 1 99]) % a 5-by-5 array, rather than a 120-by-5 array with multiple duplications

This function does not rely on perms to do the job. Similar functionality can be obtained using unique(perms(V),'rows'), but this will create a possibly large intermediate array with N! rows.
When V has J unique elements, each of which is repeated Kj times (j=1:J), then the number of unique permutations is N!/(K1!*..*KJ!)

Citation pour cette source

Jos (10584) (2024). uniqueperms (https://www.mathworks.com/matlabcentral/fileexchange/72552-uniqueperms), MATLAB Central File Exchange. Extrait(e) le .

Compatibilité avec les versions de MATLAB
Créé avec R2019a
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS Linux
Catégories
En savoir plus sur Logical dans Help Center et MATLAB Answers
Remerciements

Inspiré par : nextperm(V, K), ALL PERMUTATIONS OF SEQUENCE

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Publié le Notes de version
1.0.0