日期:2014-05-20  浏览次数:20558 次

新手求教
import java.util.*;
public class LotteryDrawing {
  public static void main(String[] args) {
  Scanner in=new Scanner(System.in);
  int k=in.nextInt();
  int n=in.nextInt();
  int[] numbers=new int[n];
  for(int i=0;i<numbers.length;i++) {
  numbers[i]=i+1;
  }
  int[] result=new int[k];
  for(int i=0;i<result.length;i++) {
  int r=(int)(Math.random()*n);
  result[i]=numbers[r];
  numbers[r]=numbers[n-1];
  n--;
  }
  Arrays.sort(result);
  for(int r:result)
  System.out.println(r);
  }
}
为什么result[i]里的数字没有重复的。。。


------解决方案--------------------
注意这两句话:
numbers[r]=numbers[n-1];
n--;
取走一个,相当于就从numbers中移除了一个,当然不重复了。