Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptパワーセットでセットのパワーセットを検索する


セットSのべき集合は、空のセットとS自体を含む、Sのすべてのサブセットのセットです。セットSのべき集合はP(S)として表されます。

S ={x、y、z}の場合、サブセットは-

{
   {},
   {x},
   {y},
   {z},
   {x, y},
   {x, z},
   {y, z},
   {x, y, z}
}

唯一の引数として配列を受け取るJavaScript関数を作成する必要があります。関数は、入力配列のべき集合を見つけて返す必要があります。

以下はコードです-

const set = ['x', 'y', 'z'];
const powerSet = (arr = []) => {
   const res = [];
   const { length } = arr;
   const numberOfCombinations = 2 ** length;
   for (let combinationIndex = 0; combinationIndex < numberOfCombinations; combinationIndex += 1) {
      const subSet = [];
      for (let setElementIndex = 0; setElementIndex < arr.length;
      setElementIndex += 1) {
         if (combinationIndex & (1 << setElementIndex)) {
            subSet.push(arr[setElementIndex]);
         };
      };
      res.push(subSet);
   };
   return res;
};
console.log(powerSet(set));

出力

以下はコンソールでの出力です-

[
   [],
   [ 'x' ],
   [ 'y' ],
   [ 'x', 'y' ],
   [ 'z' ],
   [ 'x', 'z' ],
   [ 'y', 'z' ],
   [ 'x', 'y', 'z' ]
]

  1. JavaScriptの...inステートメントについて説明しますか?

    for…inループはすべてのオブジェクトプロパティをループします。以下は、JavaScriptでfor..inステートメントを実装するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Doc

  2. JavaScriptで各ノードの次に大きいノードを見つける

    問題 リンクリストの先頭を最初で唯一の引数として受け取るJavaScript関数を作成する必要があります。 node_i.val、jは可能な限り最小の選択肢です。そのようなjが存在しない場合、次に大きい値は0です。 この関数は、対応する要素がリスト内の要素の次に大きい要素である配列を準備して返す必要があります。 たとえば、リストが-の場合 その場合、出力は-になります。 const output = [7, 0, 5, 5, 0]; 出力の説明: 2の次に大きい要素は7であるため、7の場合、それ以上の要素はありません。 例 このためのコードは-になります class Nod