我需要编写一个Perl例程,它将生成给定集合的n个选择k组合。我不需要计算有多少套,我必须能够打印出来。我很难过。
感谢任何建议。
问候。
答案 0 :(得分:5)
有一个名为Math::Combinatorics的模块可以产生组合(nCr),排列(nPr)以及您提供给它的任何事物集的紊乱。
答案 1 :(得分:-2)
如果你想要不重复的组合,你可以生成长度为 k 的所有二进制数,选择 n 1的那些并按固定顺序将它们应用于集合:0表示未选中,1表示已选择。要获取二进制数,请使用sprintf '%05b'
;计算1的使用tr/1//
。