`
zc-111
  • 浏览: 119360 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java中生成不重复随机的数字

    博客分类:
  • Java
阅读更多
Java中产生随机数

1 . 调用java.lang下面Math类中的random()方法产生随机数

        新建一个文件后缀名为java的文件,文件名取为MyRandom,该类中编写如下的代码:

          public class MyRandom {

                  public static void main(String[] args) {

                          int  radom = (int)(Math.random()*10);

                          System.out.println(radom);

                  }

          }

        其中Math.random() //产生0~1之间的一个随机小数。

        产生一个0~9之间的整数为:(int)(Math.random()*10);

        产生一个1~10之间的整数则可以写着:(int)(Math.random()*10 + 1);

        以此类推:产生一个0~n之间的数就应写作:Math.random()*n;

       取出一个指定长度大小的随机正整数:

       public static int buildRandom(int length) {
            int num = 1;
            double random = Math.random();
            if (random < 0.1) {
                 random = random + 0.1;
            } for (int i = 0; i < length; i++) {
                 num = num * 10;
            }
            return (int) ((random * num));
     }

2 . 调用java.util下面Random类,此类的实例用于生成伪随机数流,产生一个随机整数,则调用该类的nextInt()方法

      使用Random类之前,则在包下导入java.util.Random ;代码为:

import java.util.Random;

public class MyRandom {

     public static void main(String[] args) {

         Random rand = new Random();

        int rInt = rand.nextInt(10);

       System.out.println(rInt);

    }

}

其中Random rand = new Random()是创建一个新随机数生成器;rand.nextInt(int n)是从此随机数生成器的序列中取出的、在 0(包括)和指定值n(不包括)之间均匀分布的 int值。

Java中在指定的整数范围类,循环产生不相同的随机数

以产生6位20以内不相同的随即整数 为例如下:

public class MyRandom {

      public static void main(String[] args) {

           int n = 20;

          Random rand = new Random();

          boolean[]  bool = new boolean[n];

          int randInt = 0;

          for(int i = 0; i < 6 ; i++) {

               do {

                   randInt  = rand.nextInt(n);

               }while(bool[randInt]);

              bool[randInt] = true;

              System.out.println(randInt);

         }

    }

}

其中用布尔变量数组来存储是否生成了该数字。生成后,该数字作为布尔数组下表的对应布尔值变成了true,下一次生成该数字就会再次进入do...while循环生成数字直到产生没有生成过的数字。



例如:生成一个int类型的数组,长度为50的,并向其中随即插入0-50之间的数,并且不能重复。

代码如下:

public class MyRandom {

      public static void main(String[] args) {

        int[] intRandom = new int[50];
        List mylist = new ArrayList();  //生成数据集,用来保存随即生成数,并用于判断
        Random rd = new Random();
        while(mylist.size() < 50) {
            int num = rd.nextInt(51);

           /**用集合的contains方法,来判断该数据集中是否包含随即数num,

            * 如果含有返回true。不包含就是false。!表示“非”。

            *!mylist.contains(num))是个布尔值,只有当该值为true时才执行其内部的操作,即为不包含时才执行。

          */
            if(!mylist.contains(num)) { 
               mylist.add(num);  //往集合里面添加数据。
            }
        }

       /**给数值赋值*/
       for(int i = 0;i <mylist.size();i++) {
            intRandom[i] = (Integer)(mylist.get(i));
       }

    }

}
分享到:
评论

相关推荐

    随机产生8位无重复数

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

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

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

    随机生成11位数字

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

    java随机产生四位验证码(相邻码不重复)两种算法实现

    在这个问题中,我们关注的是如何生成四位字符且无重复的验证码,以及如何进一步确保相邻字符不重复的实现方法。 1. 生成四位字符、整数组成的验证码(无重复码验证) 首先,我们需要一个包含所有可能字符的数组,...

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

    标题提到的“利用时间生成8位不重复数”就是这样一个策略,它基于当前时间的时间戳来生成特定长度的不重复数字。 时间戳是一个非常有效的资源,因为它代表了从1970年1月1日00:00:00 UTC到当前时刻的总秒数。由于每...

    java 随机产生指定长度的用户名字母 数字格式

    1. **Random 类的使用**:`java.util.Random` 是Java中的一个类,用于生成伪随机数。 2. **字符数组与StringBuffer 的使用**:字符数组用来存储可能被选中的字符集;`StringBuffer` 用来构建最终的随机字符串。 3. *...

    java开发技术调用rendom函数,随机生成32位不重复的字符

    "Java开发技术调用Random函数,随机生成32位不重复的字符" 在Java开发技术中,生成随机数是非常常见的需求。例如,在注册用户账户时,需要生成一个随机的密码。在游戏开发中,需要生成随机数来决定游戏的结果。在...

    自动生成不重复无序化id

    这是自动生成不重复主键的代码包,直接导包进入程序即可使用,帮助生成由字母数字组成的16位id号,可以用于数据库主键存储(使用数据库自增主键始终有问题,不适合大型程序的使用),该代码包运用于很多大型企业级...

    Java生成兑换码工具类(英文26个字母加数字随机生成)

    生成指定位数的兑换码,(数字、大写字母随机混排)+(数字、小写字母随机混排)+(小写字母与数字混排),三种方式生成兑换码!

    随机生成10位数包含字母和数字

    2. **字符重复性**:示例代码中加入了判断逻辑`if (str.indexOf(temp) == -1)`,目的是为了确保生成的字符串中不含有重复的字符。但在实际场景中,如果不需要字符唯一性,可以去掉此判断逻辑以提高性能。 3. **字符...

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

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

    Java 中实现随机无重复数字的方法

    在Java编程中,生成一个包含随机且不重复数字的数组是一个常见的需求,特别是在进行算法练习或模拟某些随机事件时。题目要求生成一个1-100的随机数组,其中的数字不能重复,即每个位置上的数字都是随机的,但是元素...

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

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

    java 随机生成整数

    本文详细分析了如何使用Java生成1至100之间的随机整数,并特别聚焦于识别和输出那些连续出现次数超过指定次数的数字序列。通过理解代码中的随机数生成、避免重复数字以及条件输出机制,开发者可以更好地掌握Java中的...

    java生成的随机验证码

    为了确保验证码不重复,可以将生成的数字存储在一个数组中,并检查新生成的数字是否已经存在。 其次,为了增强验证码的安全性,通常会混合大小写字母。我们可以扩展随机数生成的范围,覆盖26个大写和小写字母。同时...

    JAVA 随机生成MAC地址(可定制)

    java 版的随机生成 MAC地址,笔者原创。 可根据自己需求定制。 /** * 根据虚拟机类型生成随机Mac地址 * * @param hypervType 虚拟机类型 * KVM: QEMU虚拟机 * vmware: Vmware虚拟机 * 其他: 生成随机的Mac...

    生产不重复19位随机数

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

    开发常用游戏昵称 java 随机

    开发者可以通过Java代码来读取和使用这个昵称库,例如创建一个随机昵称生成器,每当新用户注册时,就从这个库中随机选取一个昵称,或者根据用户的特定喜好进行筛选和推荐。 总的来说,这个“开发常用游戏昵称 java ...

    生成8位随机不重复的数字编号的方法

    在IT行业中,生成随机不重复的数字编号是一种常见的需求,特别是在创建唯一标识符或进行数据处理时。本文主要探讨了两种方法来生成8位随机不重复的数字编号。以下是对这两种方法的详细解释: 方法一: 这个方法基于...

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

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

Global site tag (gtag.js) - Google Analytics