早教吧作业答案频道 -->其他-->
LotteryDrawing.java的问题.苦思冥想想不出来numbersr=numbersn-1;n--是怎么解释,Scannerin=newScanner(System.in);System.out.print("Howmanynumbersdoyouneedtodraw:");intk=in.nextInt();System.out.priint("Howmang
题目详情
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 < numbers.length; i ++)
{
int[i] = i +1;//用1,2,3.n来填满数组;
}
int[] result = new int[k];
for(int i = 0 ; i < result.length ; i ++)
{
int r = (int)(Math.random()*n);
result[i] = numbers[r];//用随机生成的数值作为下标r,进行r+1运算后赋给result[i];
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 < numbers.length; i ++)
{
int[i] = i +1;//用1,2,3.n来填满数组;
}
int[] result = new int[k];
for(int i = 0 ; i < result.length ; 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< n-1 就把numbers数组中的最后一项值赋给numbers[r],假设n=6,就相当于把numbers[5]赋值给numbers[r].(r>=0),此时的numbers[r]的值就和result[i](即result[0])的值不同了,可以确保numbers数据里面剩余的元素不会和result数组里面的元素重复.
n--,numbers数组里面的元素变为了(n-1)个,就是使r的值范围变成了n-1,依次类推
第一次:i=0
如果r==n-1,基本没意义.
如果r< n-1 就把numbers数组中的最后一项值赋给numbers[r],假设n=6,就相当于把numbers[5]赋值给numbers[r].(r>=0),此时的numbers[r]的值就和result[i](即result[0])的值不同了,可以确保numbers数据里面剩余的元素不会和result数组里面的元素重复.
n--,numbers数组里面的元素变为了(n-1)个,就是使r的值范围变成了n-1,依次类推
看了 LotteryDrawing...的网友还看了以下:
M是有限数集,M的任何三个元素中总存在两个数,它们的和属于M,问M中最多有多少元素 2020-04-06 …
M是一种碱性的盐,且由三种元素组成.M\A\B\C\是四种不同类别的化合物.MB的产物是常用的调味 2020-05-16 …
请问:组合和数列,例如C52和P63等于多少?重要的是怎么算出来的?还有,Cnm=n(n-1)*( 2020-07-20 …
高一物理问题两物体质量分别为M和m,放在同一光滑水平面上,不计摩擦力,分别用力F推M并由M推动m向 2020-08-02 …
选出下面各项中字音有误的一项:A愤懑mèn扪心自问mén蒙头转向mēngB蒙昧méng蒙族měng懵 2020-11-07 …
已知集合M={x丨x=m+1/6,m属于Z},N={x丨x=m/2-1/3,n属于Z},P={x丨x 2020-12-01 …
为活跃气氛出一道难题本人一数学爱好者,有一个有趣问题,看这里有没有真正的高手.m,n都是正整数且不相 2020-12-24 …
下列常用词语中字音有错误的一组是A.勒索lè勒紧lēi擂鼓léi闷热mēnB.扪心自问mén愤懑mè 2020-12-26 …
任意一个两位数M的两个数字对调一下,得到一个新的两位数N.问M与N的和(M+N)一定是11的倍数吗? 2021-02-02 …
任意一个两位数M的两个数字对调一下,得到一个新的两位数N.请问M与N的和(M+N)一定是11的倍数吗 2021-02-02 …