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

Posted yangyzh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在N个元素的数组中获取K个元素的所有组合问题相关的知识,希望对你有一定的参考价值。

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

百度许久找到一个博客 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个元素的所有组合问题的主要内容,如果未能解决你的问题,请参考以下文章

java题目好难啊?求大侠解答,谢谢、、 设计算法求解从集合1...n中选取k(k<=n)个元素的所有组合。

计算所有排序数组组合的平均值

在C中创建n个项目的k和m个组合的所有可能子集[重复]

python中L组K项中N个元素的组合

简单枚举---从一数组中任取n个元素

找出n个有序数组中第K小的数。怎么写算法啊?各位帮帮忙!