求助:用perl如何实现数组元素的组合
本帖最后由 流星北 于 2010-12-16 15:40 编辑
假如:有一个10个元素的数组@num=(1,2,3,4,5,6,7,8,9,10),我想要得到这个数组所有可能的组合,如何实现,请高手赐代码!
具体如:
元素个数为1的所有组合是,(1),(2),(3).....(10),即每一个元素为一个组合
元素个数为2的所有组合为,(1,2),(1,3),(1,4).....,(1,10),(2,3),(2,4).......(2,10),.........(8,9),(8,10),(9,10)
元素个数为3的所有组合为,(1,2,3),(1,2,4).....(1,2,10),(1,3,4).....(1,3,10),.......(8,9,10)
.
.
.
元素个数为10的组合数为,(1,2,3,4,5,6,7,8,9,10)
请高手解答!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
本帖最后由 流星北 于 2010-12-16 20:03 编辑
回复 2# phoenix_perl
大哥你的代码实现了这个功能,但我希望你能帮我在我这个类型的数据上实现类似的功能。
BCL2 0.999
BCL2L1 0.999
CYCS 0.999
TP53 0.999
BBC3 0.996
BCL2L11 0.996
XRCC6 0.995
MAPK8 0.995
SH3GLB1 0.993
CASP3 0.991
TP53BP2 0.99
BID 0.988
我要 求前面列所有可能组合的分数的和
如:当n=1时,是对应分数本身,(BCL2对应的分数为0.999),...(FOXO3A对应的分数为0.81)
当n=2时,求所有可能的两个元素组合的分数的和,(BCL2和BCL2L1对应的分数是0.999+0.999)......(TP53BP2,BID对应的分数是0.99+0.988)
.
.
.
当n=数组元素个数, 分数为所有分数的和
复制代码将开始的size换成你要设置的.