例:
[ ] [ ] [ ] foo cat 1 bar dog 2 baz 3 4
返回
[foo] [cat] [ 1 ][foo] [cat] [ 2 ] ...[baz] [dog] [ 4 ]
我在Perl中这样做,顺便说一下.
解决方法 我的 Set::CrossProduct模块完全符合您的要求.请注意,您并不是在寻找排列,这是排列中元素的排序.您正在寻找交叉产品,它是来自不同集合的元素的组合.我的模块为您提供了一个迭代器,因此您不会在内存中创建它.只有在需要时才创建新元组.
use Set::Crossproduct;my $iterator = Set::Crossproduct->new( [ [qw( foo bar baz )],[qw( cat dog )],[qw( 1 2 3 4 )],] );while( my $tuple = $iterator->get ) { say join ' ',$tuple->@*; }总结
以上是内存溢出为你收集整理的在Perl中,我如何迭代多个集合的笛卡尔积?全部内容,希望文章能够帮你解决在Perl中,我如何迭代多个集合的笛卡尔积?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)