在JavaScript Power Set中查找集合的功率集

集合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' ]

]

以上是 在JavaScript Power Set中查找集合的功率集 的全部内容, 来源链接: utcz.com/z/350133.html

回到顶部