加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在Perl中生成数组的所有排列?

发布时间:2020-12-15 21:19:05 所属栏目:大数据 来源:网络整理
导读:什么是最好的(优雅,简单,高效)的方式来产生所有的n!一个数组在perl中的排列? 例如,如果我有一个数组@arr =(0,1,2),我想输出所有排列: 0 1 20 2 11 0 21 2 02 0 12 1 0 它应该是一个返回迭代器的函数(延迟/延迟评估,因为n!可能变得如此不可能大),
什么是最好的(优雅,简单,高效)的方式来产生所有的n!一个数组在perl中的排列?

例如,如果我有一个数组@arr =(0,1,2),我想输出所有排列:

0 1 2
0 2 1
1 0 2
1 2 0
2 0 1
2 1 0

它应该是一个返回迭代器的函数(延迟/延迟评估,因为n!可能变得如此不可能大),所以它可以像这样调用:

my @arr = (0,1,2);
my $iter = getPermIter(@arr);
while (my @perm = $iter->next() ){
    print "@permn";
}

解决方法

见 perlfaq4: “How do I permute N elements of a list?”

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读