`
fackyou200
  • 浏览: 310841 次
  • 性别: Icon_minigender_1
  • 来自: 山西太原
社区版块
存档分类
最新评论

java 生成指定范围 随机数 不重复

    博客分类:
  • java
 
阅读更多
package org.xh.rand;

import java.util.Arrays;
import java.util.Random;

public class RandDemo {

	/**
	 *
	 * make by dxh on 2013-1-23 下午02:16:44
	 * @param args
	 */
	public static void main(String[] args)throws Exception {
		 int[] arr = RandDemo.genNum(5, 30);  
		 RandDemo.showArr(arr, true); 
	}
	
	
	 /** 
     * 生成不重复随机数 
     *  
     * @param num 
     *            随机数个数 
     * @param value 
     *            随机数范围 
     * @see 注意value不可小于num 
     * @return 
     * @throws TargetMinException 
     */  
    public static int[] genNum(int num, int value) throws TargetMinException {  
        int[] arr = new int[num];// 保存最终生成结果  
        int index = 0;// 状态索引 default = 0  
        arr = new int[num];  
        if (value < num) {  
            throw new TargetMinException("随机数取值范围不可以小于生成随机数个数");  
        }  
        boolean result = true;  
        while (result) {// 控制是否继续生成随机数  
            Random rd = new Random();  
            int tempRandomNum = rd.nextInt(value) + 1;  
            if (arr[arr.length - 1] == 0) {// 决定是否继续生成随机数进行赋值  
                if (isHas(tempRandomNum, arr, index)) {// 判断已生成随机数是否与数组中已有数值重复  
                    continue;  
                }  
                arr[index++] = tempRandomNum;// 将生成的不重复发的随机数放入数组中  
            } else  
                result = false;  
        }  
        return arr;  
    }  
  
    /** 
     * 判断是否已存在生成的随机数 
     *  
     * @param mm 
     * @param arr 
     * @param index 
     * @return 
     */  
    private static boolean isHas(int tempRandomNum, int[] arr, int index) {  
        for (int i = 0; i < index; i++) {  
            if (tempRandomNum == arr[i]) {  
                return true;  
            }  
        }  
        return false;  
    }  
  
    /** 
     * showArr 
     *  
     * @param arr 
     * @param isSort 
     */  
    @Deprecated  
    public static void showArr(int[] arr, boolean isSort) {  
        for (int j = 0; j < arr.length; j++) {  
            if (isSort) {  
                Arrays.sort(arr);  
            }  
            System.out.print(arr[j] + ",");  
        }  
    }  
  
    static class TargetMinException extends Exception {  
        private static final long serialVersionUID = 1L;  
        public String message = "";  
  
        public TargetMinException(String message) {  
            this.message = message;  
        }  
  
        @Override  
        public String getMessage() {  
            return this.message;  
        }  
    }  

}

 

分享到:
评论

相关推荐

    java生成十个不重复的随机数

    在Java编程中,生成十个不...以上就是使用Java生成十个不重复随机数的两种主要方法。无论选择哪种方式,都需要根据具体需求和性能要求进行权衡。在实际开发中,理解这些算法背后的逻辑和可能的优化方向是至关重要的。

    生成指定随机数不重复的例子(可用)

    下面我们将深入探讨如何在Java中生成指定范围内不重复的随机数,以及如何将代码整合到myEclipse环境中。 首先,我们要理解Java中的`java.util.Random`类,它是生成随机数的基础。`Random`类提供了多种方法来生成...

    Java生成不重复的任意位随机数

    巧用Java实现得到任意位永不重复的随机数,很经典的代码!

    Java分步生成指定范围内不重复的随机数

    使用了ArrayList和简单的循环来达到目的。用输入数字作为触发器。

    java生成四位随机数,包含数字和字母 区分大小写,特别适合做验证码,android开发

    java生成四位随机数,包含数字和字母 区分大小写,特别适合做验证码,android开发

    Java实现生成n个不重复的随机数

    Java实现生成n个不重复的随机数是非常常见的需求,例如在游戏、数据分析、机器学习等领域中都需要生成随机数。下面将详细介绍Java实现生成n个不重复的随机数的方法。 首先,我们需要理解生成随机数的原理。生成...

    (java)指定范围的,不重复的随机数

    为了保证生成的随机数不重复,我们可以使用`java.util.HashSet`或`java.util.TreeSet`。这两个集合不允许存储重复元素,因此当我们尝试添加一个已经存在的元素时,它会被自动忽略。 4. **填充集合**: 我们可以先...

    随机产生8位无重复数

    2. **去除重复**:为了确保生成的随机数不重复,可以使用HashSet或数据库来存储已经生成过的随机数,每次生成新数时,都会先检查该数是否已存在,如果不存在则添加并返回,否则继续生成新的随机数。 3. **数据库...

    生成不重复随机数的算法

    ### 生成不重复随机数的算法 在许多应用领域中,比如在线考试系统、游戏开发或是数据处理等场景,生成不重复的随机数是一项非常重要的技术。本文将详细介绍几种不同的方法来实现这一功能,并通过具体的Java代码示例...

    java 不重复的随机数序列

    使用`java.util.Random`类可以生成指定范围内的随机数。创建一个HashSet存储随机数,然后在一个循环内不断生成随机数并尝试添加到集合中,直到达到所需的数量。示例如下: ```java import java.util.Random; ...

    Java 产生不重复随机数四种方法

    在Java编程中,生成不重复随机数是一项常见的需求,特别是在模拟抽奖、随机选取样本或创建唯一标识符等场景。本文将详细介绍四种不同的方法来实现这一功能。 ### 方法一:使用HashSet **HashSet** 是Java集合框架...

    生产不重复19位随机数

    生产不重复19位随机数,测试1000000数据没重复

    Java中不重复随机数的生成与分析.pdf

    Java中不重复随机数的生成与分析 Java 中不重复随机数的生成与分析是软件开发中的一个重要问题。随机数以其不确定性和偶然性等特点,因此在软件开发中得到了广泛应用。例如,在软件系统的测试中,用于产生具有普遍...

    利用时间生成8位不重复数

    生成的8位十六进制字符串在大多数情况下已经足够独特,但考虑到时间戳的精度,如果系统在同一秒内需要生成多个不重复的8位数字,可能需要结合其他策略,如添加进程ID、随机数或者序列号,以确保在极短时间内生成的ID...

    随机生成11位数字

    根据给定的信息,我们可以深入探讨如何在编程环境中生成指定长度的随机数字字符串,尤其是在Java环境中。这不仅是IT领域中常见的需求之一,也是许多应用程序开发过程中不可或缺的一部分。下面将详细介绍如何理解并...

    JAVA 16位ID生成工具类含16位不重复的随机数数字+大小写

    JAVA 16位ID生成工具类含16位不重复的随机数数字+大小写 本文主要介绍了JAVA 16位ID生成工具类含16位不重复的随机数数字+大小写,通过示例代码详细介绍了该工具类的实现过程,为读者提供了一个有价值的学习参考。 ...

    自己写的java产生不重复随机数

    直接运行main即可,参数为数字范围 比如10 运行后会输出9,3,0,7,2,8,4,1,5,6,

    数组放不重复的随机数

    本篇介绍了一个简单的Java程序,用于生成一系列不重复的随机数并将其存入数组中。这种方法在诸如彩票选号、游戏开发等场景中非常实用。需要注意的是,随着数组长度的增加,生成不重复随机数的时间复杂度也会相应提高...

    java生成随机数的方法

    在Java编程中,生成随机数是一项常见的任务,可用于各种用途,如创建随机密码、模拟随机事件或在游戏开发中。本篇文章将深入探讨如何在Java中生成随机数,并特别关注字符串操作的相关技巧。 首先,Java提供了`java....

    取不重复随机数.rar

    在IT行业中,生成不重复的随机数是一项常见的需求,尤其在编程和数据分析任务中。"取不重复随机数.rar"这个文件可能包含了一个易语言(EasyLanguage)的程序或者示例,用于解决这个问题。易语言是一种简洁、直观的...

Global site tag (gtag.js) - Google Analytics