关于数学中排列组合之组合算法实现
2013-04-18 17:50
711 查看
比如从 10个数字里 选出4个数字的所有可能的情形。
可以用arraylist 来 帮助我们存放 10个 数字 ,从list 的0位开始遍历 每遍历一次 remove 一个元素 当10个元素 移除 6个 所有可能的 组合都找出来了。
当然这里面会用到递归调用。算法比较粗糙,有更简练的可以分享出来,谢谢。
int flag = 1;
int[] array = new int[d];
for (int i = 0; i < c; i++) { // 藍球
Log.v("bule:", "i=" + i + "值:" + bulelist.get(i));
// 也算是初始化这个列表
List<Integer> maylist = SaveUtils.Transform(strMay);
while (maylist.size() >= d) {
// 一個個的用掉
int num = maylist.get(0);
array[0] = num; // 组合的第一个元素
Log.v("Save", "num=" + num);
List<String> l;
if(d-1>0){
l= getIntList(flag, maylist, d-1);
for (int k = 0; k < l.size(); k++) {
String mayred = num + " " + l.get(k);
String text = strSure + " " + mayred + " "
+ bulelist.get(i);
Log.v("Save", "text=" + text);
WriteStringToFile(text);
}
}else{
l=getIntList(flag, maylist, d);
for (int k = 0; k < l.size(); k++) {
String mayred = l.get(k);
String text = strSure + " " + mayred + " "
+ bulelist.get(i);
Log.v("Save", "text=" + text);
WriteStringToFile(text);
}
}
maylist.remove(0); // 移除第一个元素
}
}
可以用arraylist 来 帮助我们存放 10个 数字 ,从list 的0位开始遍历 每遍历一次 remove 一个元素 当10个元素 移除 6个 所有可能的 组合都找出来了。
当然这里面会用到递归调用。算法比较粗糙,有更简练的可以分享出来,谢谢。
int flag = 1;
int[] array = new int[d];
for (int i = 0; i < c; i++) { // 藍球
Log.v("bule:", "i=" + i + "值:" + bulelist.get(i));
// 也算是初始化这个列表
List<Integer> maylist = SaveUtils.Transform(strMay);
while (maylist.size() >= d) {
// 一個個的用掉
int num = maylist.get(0);
array[0] = num; // 组合的第一个元素
Log.v("Save", "num=" + num);
List<String> l;
if(d-1>0){
l= getIntList(flag, maylist, d-1);
for (int k = 0; k < l.size(); k++) {
String mayred = num + " " + l.get(k);
String text = strSure + " " + mayred + " "
+ bulelist.get(i);
Log.v("Save", "text=" + text);
WriteStringToFile(text);
}
}else{
l=getIntList(flag, maylist, d);
for (int k = 0; k < l.size(); k++) {
String mayred = l.get(k);
String text = strSure + " " + mayred + " "
+ bulelist.get(i);
Log.v("Save", "text=" + text);
WriteStringToFile(text);
}
}
maylist.remove(0); // 移除第一个元素
}
}
相关文章推荐
- 2015创发科技校园招聘笔试题——排列和组合的算法实现
- 排列组合算法的递归实现
- (组合数学3.1.2.1)POJ 2249 Binomial Showdown(排列组合公式的实现)
- 【数据结构与算法】关于排列组合
- java排列组合算法代码实现
- PHP实现的简单排列组合算法应用示例
- java 高效率的排列组合算法(java实现)
- 算法基础:排列组合问题-全排列(Golang实现)
- c语言实现排列组合算法问题
- 排列组合之排列问题的算法实现
- 算法_3 : 组合数学:排列组合
- 针对较大基数的排列组合算法Java实现类(n选m)
- 使用java实现数学中的排列组合公式A和C以及阶乘
- 全排列和组合算法的C#语言实现
- 高效率的排列组合算法(java实现)
- JavaScript实现数学里的排列组合的A和C运算
- C语言实现数学上的组合和排列
- 排列和组合算法 C语言经典实现
- 有关数学中的全排列的算法实现
- 组合数学学习之排列、组合、圆周排列实现