Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Perl生成组合_Perl_Combinatorics - Fatal编程技术网

使用Perl生成组合

使用Perl生成组合,perl,combinatorics,Perl,Combinatorics,我需要编写一个Perl例程来生成给定集合的n-choose-k组合。我不需要计算有多少套,我必须能够打印出来。我被难住了 任何建议都将不胜感激 关于。如果您想要不重复的组合,您可以生成长度为k的所有二进制数,选择具有n 1的二进制数,并按固定顺序将其应用于集合:0表示未选择,1表示已选择。要获取二进制数,请使用sprintf“%05b”;要计算1的使用情况,有一个名为“计算1”的模块,它可以产生组合(nCr)、排列(nPr)和你提供给它的任何一组事物的混乱状态。这看起来令人鼓舞!你能给我举一个如

我需要编写一个Perl例程来生成给定集合的n-choose-k组合。我不需要计算有多少套,我必须能够打印出来。我被难住了

任何建议都将不胜感激


关于。

如果您想要不重复的组合,您可以生成长度为k的所有二进制数,选择具有n 1的二进制数,并按固定顺序将其应用于集合:0表示未选择,1表示已选择。要获取二进制数,请使用sprintf“%05b”;要计算1的使用情况,有一个名为“计算1”的模块,它可以产生组合(nCr)、排列(nPr)和你提供给它的任何一组事物的混乱状态。

这看起来令人鼓舞!你能给我举一个如何使用
sprintf“%05b”
tr/1/
的例子吗?它们对我来说都是新的。@Schemer:请参阅和的文档
sprintf
格式化字符串,
%05b
是一个带前导零的5位二进制数
tr
替换字符并返回替换或删除的字符数,因此
tr/1/
删除所有
1
字符并给出它们的计数。好的,我通过谷歌搜索找到了sprintf。但是我找不到任何引用
tr/1//
tr/1//
不会删除任何内容,除非您说
tr/1//d
。引用佩罗普的话:“如果REPLACEMENTLIST为空,搜索列表将被复制。”@mob:是的,没有任何内容被删除,但仍然计算在内。对不起,我忘了提到我正在工作的机器上没有安装该模块,我自己也无法安装。@Schemer=>该模块不使用XS,并且没有任何非核心依赖项,所以你当然可以使用它。查看如何安装。即使无法安装,也可以查看源代码。