ホームページ >ウェブフロントエンド >jsチュートリアル >JS完全順列・組み合わせアルゴリズム実装方法

JS完全順列・組み合わせアルゴリズム実装方法

小云云
小云云オリジナル
2018-01-27 11:20:006475ブラウズ

完全な置換および結合アルゴリズム。たとえば、a、b、c、d が完全に置換されて結合された場合、結合結果は次のようになります: a、b、ab、c、ac、bc、abc、d、ad、bd、abd 、cd、acd、bcd、abcd。実装アイデア: データ ソースから要素を取り出し、それを既存の結合データと順番に結合し、データ ソースにデータがなくなるまで上記の操作をループします。

この記事では、JS によって実装される完全な置換と結合アルゴリズムを主に紹介し、完全な置換と結合アルゴリズムの原理を簡単に説明し、例の形式で完全な置換と結合アルゴリズムの具体的な実装スキルを示します。皆さんの参考になれば幸いです。

例:

データ ソース a、b、c

1。結合されたデータ グループが空の a を取り出し、結合されたデータ グループにデータ ソース a 要素を挿入します。この時点では group=[a]
2. bを取り出し、データグループを結合してaを取り出します。 aとbを結合してabを取得します。 このとき、結合されたデータグループにデータソースのb要素とabを挿入します。 ab]
3. c を取り出してデータを結合します。グループは a、b、ab を取り出し、それらを c と結合して、それぞれ ac、bc、abc を取得します。データ ソースの c 要素、ac、bc、を挿入します。このとき、group=[a,b,ab,c , ac, bc, abc]

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));

実行出力結果:

関連する推奨事項:

JavaScript でのいくつかの非再帰完全置換アルゴリズム コード例の詳細な説明

php 完全置換再帰アルゴリズムのサンプル コード

JavaScript の楽しい質問: 重複を削除する完全置換

以上がJS完全順列・組み合わせアルゴリズム実装方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。