当前位置: 首页 > 编程笔记 >

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

支嘉祥
2023-03-14
本文向大家介绍在JavaScript Power Set中查找集合的功率集,包括了在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' ]
]
 类似资料:
  • 假设有几个数组: 我需要找出所有可能的元素集合(1,2,3,4,5...)中的每一个在至少两个阵列(A,B,C....)并以下列方式显示它们: 实际输入是包含字符串的文件。可能有数千个文件,每个文件可能包含一百多个密钥字符串。 我尝试了下面的方法:首先,我通过比较所有可能的数组对来生成元素集。然后,我试图通过使用逻辑生成其他集合——元素集合的交集在数组集合的并集中很常见。像这样: 从上面我们可以得

  • 问题内容: 我正在尝试使用 生成器 在Python中构建给定集合的子集列表。说我有 作为输入,我应该有 作为输出。我该如何实现? 问题答案: 最快的方法是使用itertools,尤其是链和组合: 如果需要生成器,只需使用yield并将元组变成集合: 然后简单地:

  • 我试图找到最小的整数中的只是使用两个简单的循环。我最初尝试了一个循环,但是它没有正确更新。我还没有学习,所以这应该在不使用任何代码的情况下完成。 这就是我所拥有的: 我的最小值似乎总是列表中的最后一个值,所以我尝试打印以查看发生了什么,它似乎会更新不同的值,最后更新最后一个值。我不知道为什么会这样。 这是它正在打印的内容,例如:

  • 我想既然查询的语法是: 查询的语法是 忽略案例集合查询的语法为: 但这似乎不起作用(它仍然区分大小写)。 想法? 编辑: 它也不是。

  • 问题内容: 我正在写一个JPQL查询,它基于 Categories 集合进行查询。我的类别可以为空,因此我正在使用:categories = NULL进行检查。 当类别为NULL时,以上方法可以正常工作。但是,当类别超过一个值时,我得到了错误 java.sql.SQLException:操作数应包含1列 与hibernate有关的痕迹是 (?,?)或(?,?)中的category6_.catego