J'ai 10 mots. Comment puis-je obtenir toutes les combinaisons possibles de 5 mots Par exemple: P.s. Désolé si je ne suis pas assez juste parce que je ne connais pas l'anglais très bon. P> (n = 10, k = 5) code>. La commande
"A", "B", "C", si k = 2 (n = 3 dans ce cas) code>, il voudrait AB, BC et AC. Peut-être connaissez-vous un code ou un exemple utile. p>
4 Réponses :
Ce que vous essayez de faire est d'obtenir toutes les permutations d'une collection.
Voici le code SNIPPET: P>
a b c a b d a b e a c d a c e a d e b c d b c e b d e c d e
Être plus correct mathématiquement. Vous appelez ces combinaisons (la commande n'est pas importante) sans répétition (un élément peut survenir au plus 1 fois ou moins). mathsisfun.com/combinatorics/comminations-permutations.html
Ne "au plus 1 fois" implique "ou moins"?
Qu'en est-il d'une solution plus fonctionnelle
ab ac ad ae ba bc bd be ca cb cd ce da db dc de ea eb ec ed
L'OP a précisé que l'ordre n'a pas d'importance, donc "AB" et "BA", qui apparaissent tous deux à la suite de ce code, sont les mêmes.
Voici ce que j'ai mis ensemble: ... p> produit: p> Notez que cela est concis mais inefficace et ne doit pas être utilisé pour de grands ensembles ni des boucles intérieures. Notamment, les matrices courtes sont recréées plusieurs fois et pourraient être mémotées et le En outre, si l'entrée contient des duplicats, la sortie sera également. Soit utiliser ienumerable code> sera itéré plusieurs fois, ce qui peut entraîner des travaux inattendus si les soins ne sont pas pris. P>
.Distinct (). TOARRAY () CODE> Premièrement, ou utilisez une autre solution qui inclut la vérification de l'égalité et, vraisemblablement, prend un
IequalityComparer code> pour généralité. P> p>
ab ac ad ae bc bd be cd ce de
Bienvenue dans le débordement de pile. Bien que ce code puisse répondre à la question, fournissant un contexte supplémentaire concernant la raison et / ou la manière dont ce code répond à la question améliore sa valeur à long terme. Comment répondre . Sincères amitiés.