package 程序设计;
public class 彩票 {
public static void main(String[] args) {
int n=Integer.parseInt(args[0]);
for(int i=0;i<n;i++) {
generate();
System.out.println();
}
}
private static void generate() {
// TODO Auto-generated method stub
int a[]=new int[7];
fan:for(int j=0;j<7;j++) {
a[j]=(int)(Math.random()*35+1);
int m=a[j];
if(j>=1) {
for(int i=0;i<j;i++) {
if(a[i]==m) {
j--;
continue fan;
}
}
System.out.println(a[j]+" ");
}
}
}
}
这样去重是比较有风险的,假如一直随机到重复的数字,那么运行时间不可控的,可以这样做:
public static void generate() {
List<Integer> nums = new ArrayList<>();
for (int i = 0; i < 36; i++) {
nums.add(i+1);
}
int [] result = new int[7];
List<Integer> temp = new ArrayList<>(nums);
Random random = new Random();
for (int i = 0; i < 6; i++) {
Integer n = temp.get(random.nextInt(35 - i));
result[i] = n;
temp.remove(n);
}
result[6] = nums.get(new Random().nextInt(15));
System.out.println(Arrays.toString(result));
}