| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 9720 人关注过本帖
标题:请教高手从m个数中任取n个数的组合算法(可以重复)
只看楼主 加入收藏
泉此方
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-6-10
收藏
得分:0 
是不是我一发了我的代码,楼主就闪人不再出现呢


" border="0" />[color=white]

#ifdef _LOLICON_
#include"Loli"  //http://
#endif
2008-06-12 08:25
myelement
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-6-10
收藏
得分:0 
呵呵,没有,用了一天的时间在修改你的程序变成我想要的东西,我现在已经解决了组合的问题,非常谢谢泉此方!这个程序简单好用,佩服! 不过我现在发现个新的问题,我想要组合的是字母,每种字母的取法都对应着一个数字,比如说GGG, GGA, GGB 分别对应着20, 20, 30, 然后我想要删除有相同数字的组合,GGG 和GGA 就只能保留一个。 这个应该说不难,建立一个数组,然后循环比较,出现相同的就剔除一个,不过当我从20中取到10以后的时候,就会有几千万甚至几亿个组合(根据公式计算),根本就超出了数组的range,除非能够在一边取的时候,一边就比较,剔除(组合中有大量这种数字相同的)。不过感觉这根本不太可能,有达人有好的建议吗?谢谢!不过我觉得剔除后也大概会有十几万个,还是一样会超出数组的range。遇到这样的情况有什么办法处理呢????谢谢!
2008-06-12 22:42
泉此方
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-6-10
收藏
得分:0 
你得说明为什么这样对应,字母是怎么对应数字的
说清楚这个才好办



" border="0" />[color=white]

#ifdef _LOLICON_
#include"Loli"  //http://
#endif
2008-06-12 22:50
myelement
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-6-10
收藏
得分:0 
谢谢泉此方! G,A,B分别是不同的氨基酸, 如果取GAB,对应GAB的数字就是它们质量的加合.因为我要删除质量相同的取法,所以我把每个对应的数字都赋给一个数组,循环剔除,不过现在最多只能运行到取6种的情况.
2008-06-13 01:14
泉此方
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-6-10
收藏
得分:0 
那它们的质量和的最大可能取值是多少



" border="0" />[color=white]

#ifdef _LOLICON_
#include"Loli"  //http://
#endif
2008-06-13 11:42
Thunderbird
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-6-13
收藏
得分:0 
很难么?? 
我觉得用n重循环就可以解决了啊?
2008-06-13 12:09
Thunderbird
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-6-13
收藏
得分:0 
粗略地想了一下 应该用递归吧 因为N是不确定的值
当运行到N+一回时 跳出
2008-06-13 12:10
泉此方
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2008-6-10
收藏
得分:0 
[bo][un]Thunderbird[/un] 在 2008-6-13 12:09 的发言:[/bo]

很难么?? 
我觉得用n重循环就可以解决了啊?

哈哈哈哈。。。。。。。
你意思是要取多少个数就写多少重循环???


" border="0" />[color=white]

#ifdef _LOLICON_
#include"Loli"  //http://
#endif
2008-06-13 12:16
myelement
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2008-6-10
收藏
得分:0 
质量和的最大值很小,不超过2000。不剔除质量数字相同的,当取到19的时候,有400 billion个组合,我换了指针,最多也只能运行到12 billion。如果剔除重复的,从1取到19所有组合加起来估计不会超过4 million。
2008-06-13 22:23
Loli
Rank: 1
来 自:飞燕算法群46520219
等 级:新手上路
帖 子:348
专家分:0
注 册:2008-5-27
收藏
得分:0 
[bo][un]myelement[/un] 在 2008-6-13 22:23 的发言:[/bo]

质量和的最大值很小,不超过2000。不剔除质量数字相同的,当取到19的时候,有400 billion个组合,我换了指针,最多也只能运行到12 billion。如果剔除重复的,从1取到19所有组合加起来估计不会超过4 million。

非常非常好,那原来的代码只要极少量的修改就可以轻松做出来了


[color=white]
2008-06-13 23:03
快速回复:请教高手从m个数中任取n个数的组合算法(可以重复)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013617 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved