Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 查找一组数组的所有子集(perl)_Arrays_Perl_Powerset - Fatal编程技术网

Arrays 查找一组数组的所有子集(perl)

Arrays 查找一组数组的所有子集(perl),arrays,perl,powerset,Arrays,Perl,Powerset,我有一堆数组@a1,@a2@ak(我不知道有多少)。我想创建一个数组,其中包含数组幂集的并集。i、 例如,当且仅当某个数组的条目包含在某个i的@ai中时,该数组才在输出中。输出不应有重复项 我能想到的唯一方法是创建一个包含每个数组的幂集的数组,然后将这些幂集合并。然而,当加入工会时,我必须检查是否在进入方面平等 还有更好的吗 比如,取所有数组的并集,取幂集,然后删除那些不应该在其中的东西,这样做是行不通的,因为数组的并集太大了 编辑: 例如,假设(1,2)、(2,3,4)中的输入,则输出应为 (

我有一堆数组@a1,@a2@ak(我不知道有多少)。我想创建一个数组,其中包含数组幂集的并集。i、 例如,当且仅当某个数组的条目包含在某个i的@ai中时,该数组才在输出中。输出不应有重复项

我能想到的唯一方法是创建一个包含每个数组的幂集的数组,然后将这些幂集合并。然而,当加入工会时,我必须检查是否在进入方面平等

还有更好的吗

比如,取所有数组的并集,取幂集,然后删除那些不应该在其中的东西,这样做是行不通的,因为数组的并集太大了

编辑: 例如,假设(1,2)、(2,3,4)中的输入,则输出应为 (), (1), (2), (3), (4), (1,2), (2,3), (3,4), (2,4), (2,3,4). 任何订单都可以接受。

  • 使用中的
    子集
    为每个阵列生成功率集

  • 对每个子集的成员进行排序,以便包含相同值的子集形成相同的序列

  • 从每个排序的子集形成一个字符串,比如用空格分隔它们<代码>“@subset”将为您执行此操作

  • 将字符串用作哈希元素的键

  • 对所有阵列执行相同的操作

  • 打印哈希表的键

  • 检查

    输出

    (1,2)
    (2)
    (1)
    ()
    (2,3,4)
    (3,4)
    (2,4)
    (4)
    (2,3)
    (3)
    

    我认为您需要显示数组的值,并更具体地说明您打算做什么。它们嵌套得很深吗?数组的值是(小)整数。你能提供输入和所需输出的示例,并链接到描述吗?(我不知道你所说的一些术语是什么意思。)是的,什么是幂集(我知道这个数学术语的意思,但你似乎不是这样使用它的)。显示示例数据和输出以及您尝试的任何代码这取决于正在排序的
    powerset\u lazy
    返回的集合元素。它们看起来与原始数组的顺序相同,但文档中没有这样说。如果原始集合中存在非相邻的重复项,则该操作无效。让OP执行其所需的测试。
    (1,2)
    (2)
    (1)
    ()
    (2,3,4)
    (3,4)
    (2,4)
    (4)
    (2,3)
    (3)