回答
如果你想不重复的组合,可以生成所有二进制数长度ķ,选择那些有ň 1的,并将其应用到一组固定的顺序:0表示不选择,选择1种手段。要获得二进制数,请使用sprintf '%05b'
;统计1的使用tr/1//
。
有一个叫做Math::Combinatorics的模块,它可以产生组合(nCr),排列(nPr)以及任何你提供给它的任何事物的排列。
对不起,我忘了提及该模块没有安装在我正在使用的机器上,我无法自己安装。 – Schemer 2012-02-02 01:27:47
@Schemer =>该模块不使用XS,它没有任何非核心依赖关系,所以你当然可以使用它。有关如何查看http://stackoverflow.com/a/755179/189416。 – 2012-02-02 02:30:49
即使您无法安装它,也可以查看源代码。 – 2012-02-02 03:10:37
- 1. 生成组合
- 2. 使用perl生成pdf
- 3. 生成多个组合的组合
- 4. 在Perl中,如何生成列表的所有可能组合?
- 5. 使用Perl生成邮件并在Outlook中打开使用Perl
- 6. 使用子程序perl将脚本组合成1个脚本
- 7. 如何使用Perl和XSLT生成XML?
- 8. 生成置换和组合
- 9. 生成单词组合
- 10. 生成所有组合
- 11. 生成字母组合
- 12. Excel组合生成器
- 13. PHP槽孔,生成组合
- 14. PHP Perl组合
- 15. 如何生成用Perl
- 16. JavaScript - 使用m个元素生成n个数组的组合
- 17. 使用组合框的源组的自动生成的DataGrid
- 18. 用jquery动态生成UL LI组合
- 19. 用echo生成元素的组合
- 20. 使用集合集合生成XML
- 21. 在c中生成字组合数组#
- 22. 如何从数组中生成组合?
- 23. 使用递归生成所有字母组合的算法
- 24. 使用递归数组合并数据生成一棵树
- 25. 在C++中使用蛮力生成所有组合
- 26. 在JSF复合组件中使用IFrame生成错误
- 27. 如何在Perl中生成长度为k的所有有序组合?
- 28. 动态生成数组和子数组(perl)
- 29. perl中的语音合成
- 30. 在Perl中生成图表
这看起来令人鼓舞!你能告诉我一个如何使用'sprintf'%05b''和'tr/1 //'的例子吗?他们对我来说都是新的。 – Schemer 2012-02-02 00:56:30
@Schemer:参见['sprintf'](http://perldoc.perl.org/functions/sprintf.html)和[Quote and Quote-like Operators]的文档(http://perldoc.perl.org/ perlop.html#报价和报价单样操作员)。 'sprintf'格式化一个字符串,'%05b'是一个前导零的5位二进制数字。 'tr'替代字符并返回替换或删除的字符数,所以'tr/1 //'将删除所有的'1'字符,并给出它们的计数。 – 2012-02-02 01:17:15
好的,我通过谷歌搜索发现了sprintf。但是我找不到任何引用'tr/1 //'的东西。 – Schemer 2012-02-02 01:28:43