我試圖用隨機發生器生成2d數組。基本上,每列應該包含1-50之間的隨機值,但不會重複,但問題是,我無法在同一行或程序中的任何其他行或列上獲得重複值。換句話說,每個I整數應該只顯示一次。我的對象是通過鏈表創建的,我可能會將algorthim整合到那裏,但現在我知道了,但是我做了什麼。java隨機發生器不重複
int[] array = new int[50];
for(int i=1;i<=9;i++)
{
int[] grades = new int[5];
for(int j=0;j<=4;j++)
{
int unique = gen.nextInt(50)+1;
grades[j] = unique;
}
list.add(new Student(i, grades));
}
System.out.println(list);
我的輸出:
Student1: 20 49 45 16 13
Student2: 28 10 11 30 6
Student3: 13 25 37 31 49
Student4: 8 23 8 12 32
Student5: 22 18 35 2 7
Student6: 35 8 16 23 36
Student7: 35 3 15 42 2
Student8: 43 12 44 2 35
Student9: 12 21 36 23 12
所以我的問題是這樣的。我如何在不重複值的情況下實現隨機生成。通常我會嘗試一個集合列表,但我正在嘗試使用java.util.Random來做到這一點。我個人認爲,我會以不同的方式做到這一點,但我被告知。謝謝
簡單而優雅,這是正確的解決方案。 – nook 2013-04-29 17:41:17
這是實際的解決方案,但有沒有一種方法來實現這個使用Random()生成器?我很確定我被指示這樣做。 – user2188838 2013-04-29 17:43:22
@ user2188838:當然,在這種情況下,請按照vlad-ardelean的說法。 Collections.shuffle使用隨機生成器,順便說一句。 – 2013-04-29 17:48:59