在N個(gè)元素的數(shù)組中獲取K個(gè)元素的所有組合問(wèn)題
可以寫循環(huán),也可以用模塊。
百度許久找到一個(gè)博客 http://blog.sina.com.cn/s/blog_4a0824490101f1kc.html 詳細(xì)介紹了Algorithm::Combinatorics
受此啟發(fā),又找到了 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";
}
結(jié)果
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
posted on 2018-04-19 10:51 yangyzh 閱讀(1060) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)