【numbers】LotteryDrawing.java的问题.苦思冥想想不出来numbersr=...

发布时间:2021-03-22 04:35:10

LotteryDrawing.java的问题.苦思冥想想不出来numbers【r】 = numbers【n-1】;n--是怎么解释,Scanner in = new Scanner(System.in);System.out.print(How many numbers do you need to draw:);int k = in.nextInt();System.out.priint(How mang highest numbers do you need to draw: );int n = in .nextInt();int[] numbers = new int[n];for(int i = 0 ; i { int[i] = i +1;//用1,2,3.n来填满数组;}int[] result = new int[k];for(int i = 0 ; i {int r = (int)(Math.random()*n);result[i] = numbers[r];//用随机生成的数值作为下标r,进行r+1运算后赋给result[i];numbers[r] = numbers[n-1];//为了防止出现相同的随机值!这里我就看不懂了.什么意思啊n--;//为了防止出现相同的随机值!这里我就看不懂了.什么意思啊}

网友回答

【答案】 numbers[r] = numbers[n-1];//
  第一次:i=0
  如果r==n-1,基本没意义.
  如果r=0),此时的numbers[r]的值就和result[i](即result[0])的值不同了,可以确保numbers数据里面剩余的元素不会和result数组里面的元素重复.
  n--,numbers数组里面的元素变为了(n-1)个,就是使r的值范围变成了n-1,依次类推
以上问题属网友观点,不代表本站立场,仅供参考!