Maison  >  Article  >  interface Web  >  Méthode de mise en œuvre de l'algorithme de permutation et de combinaison complète JS

Méthode de mise en œuvre de l'algorithme de permutation et de combinaison complète JS

小云云
小云云original
2018-01-27 11:20:006293parcourir

Algorithme complet de permutation et de combinaison, par exemple, si a, b, c, d sont entièrement permutés et combinés, le résultat de la combinaison est : a, b, ab, c, ac, bc, abc, d, ad, bd , abd, cd, acd, bcd, abcd. Idée d'implémentation : retirez un élément de la source de données, combinez-le tour à tour avec les données combinées existantes et bouclez les opérations ci-dessus jusqu'à ce qu'il n'y ait plus de données dans la source de données.

Cet article présente principalement l'algorithme de permutation et de combinaison complet implémenté par JS. Il décrit brièvement le principe de l'algorithme de permutation et de combinaison complète et donne les compétences spécifiques de mise en œuvre de l'algorithme de permutation et de combinaison complète dans le. sous forme d'exemples. Les amis qui en ont besoin peuvent le faire. Pour référence, j'espère que cela pourra aider tout le monde.

Exemple :

Source de données a, b, c

1 Retirez a, le groupe de données combiné est vide et insérez les données. source un élément Accédez au groupe de données combiné, à ce moment group=[a]
2 Retirez b, retirez a du groupe de données combiné, combinez a et b, obtenez ab, insérez l'élément de la source de données b. et ab dans le groupe de données combiné, à ce moment group=[a,b,ab]
3 Retirez c et combinez le groupe de données pour retirer a, b, ab, combinez-les avec c respectivement, obtenez ac. , bc, abc respectivement, placez les éléments c de la source de données, ac, bc et abc sont insérés dans le groupe de données combiné à ce moment, group=[a,b,ab,c,ac,bc,abc]

.

Code js :


var data = ['a','b','c','d'];
function getGroup(data, index = 0, group = []) {
  var need_apply = new Array();
  need_apply.push(data[index]);
  for(var i = 0; i < group.length; i++) {
    need_apply.push(group[i] + data[index]);
  }
  group.push.apply(group, need_apply);
  if(index + 1 >= data.length) return group;
  else return getGroup(data, index + 1, group);
}
console.log(getGroup(data));

Exécution des résultats de sortie :

Connexe recommandations :

Codes JavaScript pour plusieurs algorithmes de permutation complète non récursifs Explication détaillée des exemples

exemple de code d'algorithme récursif de permutation complète php

Question amusante JavaScript : permutation complète pour supprimer les doublons

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!

Déclaration:
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