请教高手一个关于数字组的编程
1-10 这十个数字 要求分成若干组,每组七个数字。每组内部的数字不能重复,组与组之间的七个数字不能完全相同。已经有朋友帮我算出这大概可以分成120多组,现在需要有编程高手能不能帮我罗列出所有的数字组。 或者帮我设计一个程序也行!~
偶是菜鸟,偶不是高手,所以偶的结果有等验证
变量命名不规范,请见谅
import java.util.Arrays;
public class Seven {
/**
* @author cqusnail
*/
public static void main(String[] args) {
Seven s = new Seven();
int t = 0;
int[] r;
int[][] rr = new int[200][7];
again:
//理论上只能生成120组,当然为了检验,你也可以把 t 的上限设大一些
while(t<120)
{
r = s.s_Sort();
//比较新产生的数组与已经存在的数组中的元素是否相等
for(int e =0;e<t+1;e++)
{
//比较新产生的数组与当前的数组是否相等
if(Arrays.equals(r, rr[e]))
continue again;
}
//如果产生的数组与已经存在的数组不相等,则放入rr数组,并打印
{
rr[t]=r;
System.out.print(" 第 "+t+" 组 ");
for(int p=0;p<7;p++)
{
System.out.print(" "+r[p]+" ");
}
}
System.out.println();
t++;
}
}
//产生一组七个数字,每组内部的数字不能重复,并且排好序
private int[] s_Sort()
{
int[] str = new int[7];
int[] a = new int[10];
int temp = 10;
int temp2;
for(int j=0;j<10;j++)
{
a[j]=j+1;
}
for(int i=0;i<7;i++)
{
temp2 = (int)(Math.random()*temp);
str[i]= a[temp2];
for(int k=temp2;k<temp-1;k++)
{
a[k]=a[k+1];
}
temp--;
}
Arrays.sort(str);
return str;
}
}