在一个范围内随机生成指定个数的不重复随机数

public static void setRandom(int min, int max, int n, HashSet<Integer> set) {
        Random random = new Random();

        for (int i = 0; i < n; i++) {
            int ranInt = random.nextInt(max - min + 1);
            if(!set.add(ranInt)){
                i--;
            }

        }
}
时间: 2024-10-27 13:32:03

在一个范围内随机生成指定个数的不重复随机数的相关文章

C#在一段数字区间内随机生成若干个互不相同的随机数

/// <summary>        /// Random ra=new Random();  系统自动选取当前时前作随机种子:        /// Random ra=new Random(6) 指定一个int型的参数作为随机种子;        /// ra.Next(); 返回一个大于或等于零而小于2,147,483,647的随机数        /// ra.Next(20);返回一个大于或等于零而小于20的随机数        /// ra.Next(1,20); 返回一个大于

随机生成指定位数的验证码

import randomimport string # 方法一:def code_1(m, choice): code=''.join(random.sample(choice, m)) return code print(code_1(4, string.ascii_letters + string.digits)) # 方法二:def code_2(n): code='' for i in range(n): number=random.randint(0, 9) # 0-9 lower_

shell &nbsp; 随机生成10个数,找出最大值

分析:随机生成10个数?  生成随机数,这里用RANDOM函数,我把生成的这10个数定义为一个数组array,定义MAX的初始值为array[0] 使用for循环进行与每一个元素的值进行比较,如果有比array[0]大的,假如array[3]比array[0]大,那么就把array[3]的值赋值给MAX,遍历比较每个数组元素,最后输出MAX的值即可! 看看执行情况....                      文本 #!/bin/bash #Author:wangergui       Em

随机生成指定长度的密码之---Random

随机生成指定长度的密码思路: 1.密码中可能包含字母,数字,特殊符号,为了区别分别定义常量 2.随机生成密码,自然想到要用到java.util.Random 类 3.定义一个带两个参数的方法,1跟2,分别指定密码内容类型和密码长度 具体实现过程: import java.util.Random;/** * @author * @date 创建时间: * @version 1.0 * @parameter * @since * @return */public class RandomChar {

在1-10000中随机生成100个数

题意:在1-10000中随机生成100个数,1-10000已经放在数组中,要求时间和空间都要O(1). 思路:因为空间要O(1),所以我们可以想到这一定是在原本数组的基础上操作,时间也要O(1)的话,证明我们无法Hash后再判重.所以我们可以这么想用一个指针表示目前已经生成好的随机数,那么这个指针从1开始,每次都从剩下的数中随机取一个和当前指针交换就可以完成了,自己写了代码,有错求指出来. import java.util.ArrayList; import java.util.HashSet;

生成32位UUID及生成指定个数的UUID

参考地址:https://blog.csdn.net/xinghuo0007/article/details/72868799 UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成的API. 按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可能的数字 使用UUID的好处在分布式的软件系统中(比如:DCE/RPC, COM+,CORBA)就能体现出来, 它能保证每个节点所生成的标识都不会重复,并且随着WEB服务

随机生成前N个不重复的整数

package cn.ds; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Random; /** * 测试随机生成前N个不重复的整数 *

生成一定数量的不重复随机数

/* * array unique_rand( int $min, int $max, int $num ) * 生成一定数量的不重复随机数 * $min 和 $max: 指定随机数的范围 * $num: 指定生成数量 * 说明: 生成随机数时用了 mt_rand() 函数.这个函数生成随机数的平均速度要比 rand() 快四倍. 去除数组中的重复值时用了“翻翻法”,就是用 array_flip() 把数组的 key 和 value 交换两次.这种做法比用 array_unique() 快得多.

随机生成指定范围内的随机数,放在指定长度的数组内

在群里遇到有人提出一道题:1.创建一个长度为5的空数组arr. 2.生成一个[2,32]之间的随机整数rand. 3.把随机整数插入到arr内,如果arr内已存在与rand相同的数,则重新生成随机整数并插入(需要使用递归实现,不能使用for/while等循环). 4.最后输出一个长度为5,且内容不重复的数组arr. 首先:生成指定范围的随机整数的公式: Math.floor(Math.random()*(max-min+1)+min); 之后看完整的方法: var arr = new Array