int[] drawNumbers = new int[10];//Array With 10 Random Numbers USED for DRAWN NUMBERS
String x = "Drawn Numbers: ";
List<Ticket> ticketWon ;
do{
//GENERATING 10 Random Numbers
for (int i = 0; i <= drawNumbers.length -1 ; i++) {
Random r = new Random();
drawNumbers[i] = r.nextInt(99) + 1;
x += drawNumbers[i] + " ";
}
}
我試圖生成10個隨機數字,必須隨機生成並且唯一。我的問題是,使用Random r = new Random()
有時會顯示覆制的數字。我如何從範圍1到99生成10個隨機數字而無需複製?生成隨機數字,但必須使用唯一編號生成而不進行重複
問題是針對彩票系統
我想用Collection.Shuffle
但我不認爲它肯定應該如何實現。
一種方法是把'Integer's在'Set',當一套大小爲10,結束'do while'循環。沒有'for'循環需要。 – Voicu 2015-02-07 17:17:44
Aaahh,但是你怎麼知道重複不是巧合的隨機性? :-)。更嚴重的是,你應該真的在尋找一個密碼安全的隨機數發生器,而不是簡單的隨機數。 – 2015-02-07 17:18:47
即SecureRandom ...不是隨機的 – 2015-02-07 17:20:22