首页 > 编程语言 > 详细

在N个元素的数组中获取K个元素的所有组合问题

时间:2018-04-19 11:28:08      阅读:401      评论:0      收藏:0      [点我收藏+]

可以写循环,也可以用模块。

百度许久找到一个博客 http://blog.sina.com.cn/s/blog_4a0824490101f1kc.html 详细介绍了Algorithm::Combinatorics

受此启发,又找到了 Math::Combinatorics

由于前面的博客介绍了Algorithm::Combinatorics,所以本博客介绍一下Math::Combinatorics

 

perl 脚本

use Math::Combinatorics;

my @n = qw(a b c);
my $combinat = Math::Combinatorics->new(count => 2,data => [@n]);
print "combinations of 2 from: ".join(" ",@n)."\n";
print "------------------------".("--" x scalar(@n))."\n";
while(my @combo = $combinat->next_combination){
    print join(‘ ‘, @combo)."\n";
}
print "\n";

print "display the permutations: ".join(" ",@n)."\n";
print "------------------------".("--" x scalar(@n))."\n";
while(my @permu = $combinat->next_permutation){
    print join(‘ ‘, @permu)."\n";
}

结果

combinations of 2 from: a b c
------------------------------
a b
a c
b c

display the permutations: a b c
------------------------------
a b c
a c b
b a c
b c a
c a b
c b a

在N个元素的数组中获取K个元素的所有组合问题

原文:https://www.cnblogs.com/yangyongzhi/p/8880934.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!