生成n個不同的隨機數,且隨機數區間為[0,n)
阿新 • • 發佈:2019-03-02
返回 blog args ref http new while www https
- 生成n個不同的隨機數,且隨機數區間為[0,n)
package cn.hgnulb.utils; import java.util.ArrayList; import java.util.List; import java.util.Random; public class TestRandom { public static void main(String[] args) { System.out.println(getDiffNO(10)); } /** * 生成n個不同的隨機數,且隨機數區間為[0,n) * * @param n 生成隨機數的個數 * @return 返回生成 [0-n) 個不重復的隨機數,用 list 來保存這些隨機數 */ public static List<Integer> getDiffNO(int n) { // list 用來保存這些隨機數 List<Integer> list = new ArrayList<Integer>(); Random rand = new Random(); boolean[] bool = new boolean[n]; int num = 0; for (int i = 0; i < n; i++) { do { // 如果產生的數相同則繼續循環 num = rand.nextInt(n); } while (bool[num]); bool[num] = true; list.add(num); } return list; } }
- https://www.cnblogs.com/ningvsban/p/3590722.html
生成n個不同的隨機數,且隨機數區間為[0,n)