Bry*_*n P 0 java arrays random
我正在练习在数组中创建一个随机生成的整数,然后随机化数组中的元素.当我打印数字时,一切都很好,但是当我显示随机元素时,似乎有一个元素无法打印.我有遗漏的一步吗?
public class shufflingArrays {
public static void main(String[] args) {
int[] myList = new int[10];
System.out.println("Numbers:");
for(int i = 0; i < myList.length; i++) {
myList[i] = (int)(Math.random() * 100);
System.out.print(myList[i] + " ");
}
System.out.println("\nRandomized:");
for (int i = myList.length - 1; i > 0; i--){
//Generate index j randomly with 0 <= j <= i
int j = (int)(Math.random() * (i + 1));
//Swap myList[i]; with myList[j]
int temp = myList[i];
myList[i] = myList[j];
myList[j] = temp;
System.out.print(myList[i] + " ");
}
}
Run Code Online (Sandbox Code Playgroud)
你的for循环有条件i > 0,这意味着i == 0它将终止并且不打印出第一个数组元素.
但是,如果你正在进行Fisher-Yates shuffle,那么你确实需要从myList.length-11开始,所以你的初始代码是正确的.然后,您无法从同一个循环中打印出数组中的所有元素,因此要么在打印出元素之后使用另一个循环,要么在System.out.print(myList[0]);之后添加.
| 归档时间: |
|
| 查看次数: |
39 次 |
| 最近记录: |