我應該創建一個程序,調用一個方法來產生數字1到10的排列。基本上,我應該用1-10之間的隨機數填充數組從來沒有得到重複的數字,每次我調用該方法時都會得到不同的結果。我使用了Random()類,但由於某些原因它正在生成符號,字符和數字。這裏是我的程序:從Java中的隨機數發生器中獲取字符
import java.util.*;
public class perms
{
public static void main(String[] args)
{
int[] myPermutation;
myPermutation = generatePermutation1To10();
System.out.println(myPermutation);
}
private static int[] generatePermutation1To10() {
Random rng = new Random();
int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] finalNums = new int[nums.length];
for (int k=0;k<finalNums.length; ++k)
{
int rnIdx = rng.nextInt(nums.length-k);
finalNums[k] = nums[rnIdx];
nums[rnIdx] = nums[nums.length-k-1];
}
return finalNums;
}
}
值得加入到這個答案是什麼你打印出是一個內存位置。這就是爲什麼它看起來像隨機數字和字符。 – Rainbolt
工作!非常感謝!我不知道它是這樣做的。 – Corey
@約翰它不是一個內存位置 – Cruncher