精华内容
下载资源
问答
  • java生成不重复随机数

    2016-05-13 16:35:35
    java生成不重复随机数public class SetClass { public static void main(String[] args) { HashSet<Integer> set = new HashSet(); randomSet(20, 50, 5, set); for (int j : set)

    java生成不重复随机数

    public class SetClass {
            public static void main(String[] args) {
            HashSet<Integer> set = new HashSet<Integer>();
            randomSet(20, 50, 5, set);
            for (int j : set) {
                System.out.println(j);
            }
        }
    
        /**
         * 随机指定范围内N个不重复的数 利用HashSet的特征,只能存放不同的值
         * 
         * @param min
         *            指定范围最小值==0
         * @param max
         *            指定范围最大值==list.size-1
         * @param n
         *            随机数个数==5
         * @param HashSet<Integer>
         *            set 随机数结果集
         */
        public static 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++) {
                // 调用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 - setSize, set);// 递归
            }
        }
    }
    展开全文
  • Java生成不重复随机数

    千次阅读 2019-08-15 21:58:29
    关于生成不重复随机数算法的应用场景:** 1、考试系统中生成不重复试题的算法及程序设计; 2、一种随机的音乐播放列表; 3、随机抽样模型; 4、工作人员随机分配工作地点; 5、接单系统随机分配满足条件的多条匹配...

    **如题;

    关于生成不重复随机数算法的应用场景:**

    1、考试系统中生成不重复试题的算法及程序设计;
    2、一种随机的音乐播放列表;
    3、随机抽样模型;
    4、工作人员随机分配工作地点;
    5、接单系统随机分配满足条件的多条匹配路线;
    6、非诚勿扰随机抽取嘉宾入场顺序;
    7、分布式系统随机分配符合条件的请求处理服务器;
    … …

    代码实战及原理分析;

    *使用随机不重复算法,实现一个车牌摇号器,
     本期参与摇号人员共1000(编号1-1000)人,从中抽取10人,可以获得得到购买车牌的资格。
    

    Demo:

    public class Task1 {
    
    	public static void main(String[] args) {
    		int[] num1=new int[10];//定义一个长度10的数组(10个人)
    		int[] num2=new int[100];//这个数组用来存储数据(总共1000人)
    		//先给数组2赋值,不然空数组会导致后面取随机数重复
    		for(int i=0;i<num2.length;i++){
    			//这里+1是因为取随机数的范围是从零开始的,为了避免数组出现零,所以+1
    			num2[i]=i+1;
    		}
    		Random r =new Random();//生成随机数的类
    		int index=-1;//定义一个变量记录下标
    		//创建10个不重复的随机数(核心代码块)
    		for(int i=0;i<num1.length;i++){
    			index=r.nextInt(num2.length-i);
    			num1[i]=num2[index];
    			// 下面代码是用来把选择的数调换到数组的最后一位,避免重复
    			int b=num2[index];
    			num2[index]=num2[num2.length-1-i];
    			num2[num2.length-1-i]=b;
    		}
    		//排序数组并输出
    		Arrays.sort(num1);
    		System.out.println("以下10个人,可以获得得到购买车牌的资格。"+Arrays.toString(num1));
    	}
    }
    

    今天开始写博客记录学习进度~
    加油

    展开全文
  • java 生成不重复随机数 数字类型方法 import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.ArrayList; import java.util.UUID; ...

    java 生成不重复随机数 数字类型方法

    import java.math.BigInteger;
    import java.security.MessageDigest;
    import java.security.NoSuchAlgorithmException;
    import java.util.ArrayList;
    import java.util.UUID;

    public class Hsah2 {

    public static void main(String[] args) throws NoSuchAlgorithmException {
    	ArrayList<String> list = new ArrayList<String>();
    	for(int i=0;i<=1000000;i++){
    		String uuid = UUID.randomUUID().toString();
    		MessageDigest md = MessageDigest.getInstance("MD5");
    		uuid = new BigInteger(md.digest(uuid.getBytes())).toString(10);
    

    // int hashCodeV = uuid.hashCode();
    // if (hashCodeV < 0) {//有可能是负数
    // hashCodeV = -hashCodeV;
    // }
    // uuid = “1” + String.format("%015d", hashCodeV);
    uuid = uuid.substring(16);
    for(String str:list){
    if(str.equals(uuid)){
    System.out.println(i+“重复”+uuid);
    }
    }
    list.add(uuid);
    }
    }
    }

    展开全文
  • UUID:全球唯一标识符,是128位长数字,一般用16进制表示,算法的核心思想是结合机器的网卡、当地时间、一个随机数生成的。 代码如下: import java.util.UUID; /** * @author Grass * @date 2019年9月12日...

    UUID:全球唯一标识符,是128位长数字,一般用16进制表示,算法的核心思想是结合机器的网卡、当地时间、一个随机数来生成的。

    代码如下:

    import java.util.UUID;
    
    /**
     * @author Grass
     * @date 2019年9月12日下午5:03:34
     * @description 生成UUID
     */
    public class UUIDTest {
    	public static void main(String[] args) {
    		UUID uuid = UUID.randomUUID();
    		String id = uuid.toString().replace("-", "");
    		System.out.println(id);
    	}
    }
    

     

    展开全文
  • 一个不错的算法,很简单,但有效。不过如果范围比较大,则占用内存大,就不推荐使用了。个人感觉1000个以内的就... /** * 生成不重复随机数的一种算法。 * * */ public class T { public static void main(St...
  • Java生成不重复随机数UUID(转)

    万次阅读 2017-05-09 00:04:56
     * 生成随机数   * GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique   * IDentifier) 。   *   * 所以GUID就是UUID。   *   * GUID是一个...
  • package numbers; import java.util.HashSet; public class RandomNumbers { ...* 随机指定范围内N个不重复的数 利用HashSet的特征,只能存放不同的值 *  * @param min * 指定范围最小值 * @param max * 指
  • [Java]不重复随机数生成简易算法

    万次阅读 2016-03-17 11:14:32
    java不重复随机数算法
  • (相关视频课程推荐:java视频教程)为了更好地理解这个题意,我们先来看下具体内容:生成一个1-100的随机数组,但数组中的数字重复,即位置是随机的,但数组元素重复。在这里呢,没有给我们规定数组的长度,...
  • java中,使用Random类可以生成随机数,通常是int item = ran.nextInt(33); item的值在[0,33)之间,假如我们想生成指定区间的随机数,我们...再有一个例子,比如我们想生成[1,32)之间,不重复的7个随机数,我们该怎...
  • import java.util.HashSet; public class RandomNumbers { /** * 随机指定范围内N个不重复的数 利用HashSet的特征,只能存放不同的值 * * @param min * 指定范围最小值 * ...
  • java 使用数组生成不重复随机数 public class TestRandom { public static void main(String[] args) { //定义一个数组存放需要随机的数 int[] ints = new int[33]; for (int i = 0; i < ints....
  • 项目中数据库会生成不重复随机数主键ID,但是不适合生成订单号。因此要自己写随机订单号。考虑采用雪花算法。 先写一个生成订单的工具类,然后再写一个调用工具类调用先前工具类生成ID的方法。 package com.rdd; ...
  • 生成不重复随机数序列(Java

    千次阅读 2018-09-16 15:23:09
    从1到n之间抽取出k个不重复随机数,用Math.random()实现的话,可参照下面的代码。 int r = (int) (Math.random() * n), 生成下标,据此下标,去到numbers数组里拿到随机数。然后将numbers[r]的值设置成numbers[n...
  • 多种生成不重复随机数java 源代码,在线考试系统组卷系统中若需要随机抽题技术,这些代码可能会帮上忙!
  • import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random;... // 需求:生成范围为[0,100)的10个随机数 System.out.println(getRandomNumList(10, 0, 100));
  • Java生成不重复随机数

    千次阅读 2020-07-06 20:51:42
    import java.util.Arrays; public class NoRepeatRandomNumber { public static void main(String[] args) { getNotNumber1(); getNotNumber2(); } public static void getNotNumber1(){ //1. 声明整型数组
  • random生成随机数范围 [0,1) //产生0-9的随机数 int i= (int)(Math.random()*10); 方法二 利用java提供的Random类 //产生[0,10)的随机数 Random r = new Random(); int k = r.nextInt(10); //生成2-5的随机数 ...
  • Java生成指定位数不重复随机数。 2.风花雪月 2.1.随机数生成方法 Java 中常见的随机数的生成方式有三种: 第一种:通过 Math.random() 返回一个0(包含)到1(不包含)之间的 double 值。...
  • Java实现不重复随机数

    千次阅读 2018-10-15 09:05:08
    随机指定范围内生成N个不重复的数 更多精彩 更多技术博客,请移步 asing1elife’s blog 具体实现 /** * @param min 指定范围最小值 * @param max 指定范围最大值 * @param n 随机数个数 */ private int[] ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 479
精华内容 191
关键字:

java生成不重复随机数

java 订阅