D:\>public class AAA
{
public static void main(String[] args)
{ int c=10;
int[] a=new int[c];
for(int i=0;i < c; i++)
{ a[i] = i + 1;
}
for(int m=1;m<5;m++)
{
int[] b=new int[c];
for(int i=0;i < 10; i++)
{
int r=(int)(Math.random()*c);
b[i]=a[r];
a[r]=a[c-1];
c--;
}
c=10;
System.out.print("第"+m+"个:");
for(int i=0;i < 10; i++)
{
System.out.print( " "+ b[i]);
}
System.out.println();
}
}
}
代码要求很简单:对1-10进行4次相互独立的随机排列并且打印出来,但是结果却很奇怪:
D:\>javac AAA.java
D:\>java AAA
第1个: 8 2 6 5 7 10 9 1 3 4
第2个: 7 4 10 3 4 10 4 9 10 10
第3个: 10 9 10 10 4 10 10 10 10 10
第4个: 9 10 10 10 10 10 10 10 10 10
除了第一个正常之外,其他几个都或多或少的减少了取值范围。
为什么?请清楚的朋友帮忙解答一下。
谢谢。