前端之家收集整理的这篇文章主要介绍了
如何在Perl中生成数组的所有排列?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
什么是最好的(优雅,简单,高效)的方式来产生所有的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 "@perm\n";
}
原文链接:https://www.f2er.com/Perl/173040.html