利用HashSet生成一組不重複的隨機數

import java.util.HashSet;
 
public class RandomMaker {
    //參數
    //min:隨機數的最小值
    //max:隨機數的最大值
    //n:生成隨機數的個數
    //set:存放生成的隨機數的集合
    //int型也可更改爲float、double
    public void randomSet(int min, int max, int n, HashSet<Integer> set){
        if (n > (max - min + 1) || max < min) { 
            return;
        }
        for (int i = 0; i < n; i++) { 
            int num = (int) (Math.random() * (max - min)) + min;  
            set.add(num);
        }
        int setSize = set.size();
        if (setSize < n) {  
            randomSet(min, max, n - setSize, set);
        }  
    }
}
//使用方法如下:
RandomMaker rm = new RandomMaker();//new一個隨機數生成器
HashSet<Integer> set= new HashSet<Integer>();//new一個HashSet用於存放生成的隨機數
int min = 0;
int max = 100;
int num = 10;
rm.randomSet(min, max, num, set);
//輸出隨機數
for(int temp : set){
    System.out.println(temp);
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章