回答
如果你想不重複的組合,可以生成所有二進制數長度ķ,選擇那些有ň 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