java生成范围内指定个数的随机数

xiaoxiao2021-02-28  56

/**  * 随机指定范围内N个不重复的数  * 利用HashSet的特征,只能存放不同的值  * @param min 指定范围最小值  * @param max 指定范围最大值  * @param n 随机数个数  * @param ce 函数执行后set集合长度和目标个数N的差值 * @param HashSet<Integer> set 随机数结果集  */   public static void randomSet(int min, int max, int n,int ce, HashSet<Integer> set) { if (n > (max - min + 1) || max < min) { return; } int n1=ce>0?ce:n; for (int i = 0; i < n1; i++) { // 调用Math.random()方法 int num = (int) (Math.random() * (max - min)) + min; set.add(num);// 将不同的数存入HashSet中 } int setSize = set.size(); // 如果存入的数小于指定生成的个数,则调用递归再生成剩余个数的随机数,如此循环,直到达到指定大小 if (setSize < n) { randomSet(min, max,n, n - setSize, set);// 递归 } }
转载请注明原文地址: https://www.6miu.com/read-2630814.html

最新回复(0)