/*
* 这个程序是求多个元素的组合总数以及全部的组合
*/
package cxz.math;
import java.util.Vector;
public class Combination2 {
private static Vector v = new Vector();
private static int count = 0;
public static void main(String[] args) {
int n = 5;
for (int p = 1; p <= n; p++) {
//求p个的集合
find(0, n - p, p);
}
}
private static void find(int ns, int ne, int step) {
if (step == 0) {
show();
v.remove(v.size() - 1);
return;
}
for (int i = ns; i <= ne; i++) {
v.add(new Integer(i));
find(i + 1, ne + 1, step - 1);
}
if (v.size() > 0)
v.remove(v.size() - 1);
}
private static void show() {
String ret = "";
for (int k = 0; k < v.size(); k++) {
int m = ((Integer) v.get(k)).intValue();
ret += m + " ";
}
System.out.println(count + ":" + ret.trim());
count++;
}
}