/*【程序10】
* 实例:生成彩票号码组合
* 假设有一种彩票,每注由7个1~29的数字组成,且这7个数字不能相同,
* 编写程序生成所有的号码组合。
*
* 用回溯(试探)算法生成彩票号码所有组合
*/
public class T010 {
public static final int N = 29; // 共N=29个号码
public static final int M = 7; // 每M=7个号码为一组
public static int[] num = new int[N]; // num={1-29}
public static int[] lottery = {0,0,0,0,0,0,0}; // 保存7位数用
public static int count = 0;
public static void combine(int n,int m){
for(int i=n; i>=m; i--){
lottery[m-1] = num[i-1]; // 保存结果
if(m>1){ // 完成集合中所有解的试探
combine(i-1,m-1);
}else{ // 输出
for(int j=M-1;j>=0;j--){
System.out.print(lottery[j]+" ");
}
System.out.println();
}
}
}
public static void main(String[] args){
for(int i=0;i<N;i++){ // 初始化num = {1~29}
num[i] = i+1;
}
combine(N,M);
}
}
运行结果:(部分结果)
【程序10】生成彩票号码组合
最新推荐文章于 2024-01-17 15:37:58 发布