`
joy_cz
  • 浏览: 136552 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java生成无重复随机数的2种方法

阅读更多
<script language="javascript" type="text/javascript" src="/AD/200602/14.js"></script>

第一种方法,在一个待选数组中随机产生一个数,然后把他放到待选数组的最后,然后从length-1里随机产生下一个随机数,如此类推

public static int[] randoms()
{
Random r = new Random();

int temp1,temp2;
int send[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
int len = send.length;
int returnValue[] = new int[22];
for(int i=0;i<22;i++)
{
temp1 = Math.abs(r.nextInt())% len;
returnValue[i] = send[temp1];
temp2 = send[temp1];
send[temp1] = send[len-1];
send[len-1] = temp2;
len--;
}
return returnValue;
}
}

方法二:还是一个固定的无重复的数组,然后把这个数组随机调换位置,多次之后这个数组就是一个无重复的随机数组了。

public static int[] random2()
 {
  int send[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21};
  int temp1,temp2,temp3;
  Random r = new Random();
  for(int i=0;i<send.length;i++) //随机交换send.length次
  {
   temp1 = Math.abs(r.nextInt())%(send.length-1); //随机产生一个位置
   temp2 = Math.abs(r.nextInt())%(send.length-1); //随机产生另一个位置
   if(temp1 != temp2)
   {
    temp3 = send[temp1];
    send[temp1] = send[temp2];
    send[temp2] = temp3;
   }
  }
  return send;
 }

 
分享到:
评论

相关推荐

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

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

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

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

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

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

    生成不重复随机数的算法

    Fisher-Yates洗牌算法是一种有效的生成不重复随机数的方法。它通过对数组进行随机交换来达到目的。 **示例代码**: ```java import java.util.*; public class Test { public static void main(String[] args) { ...

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

    总结来说,这个例子提供了一种在Java中生成指定范围内不重复随机数的方法,通过结合`Random`类和集合数据结构实现。在myEclipse环境下,只需几步简单操作,即可运行并测试这段代码。对于开发者来说,理解和掌握这种...

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

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

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

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

    随机产生8位无重复数

    本项目基于Struts、Spring和Mybatis这三大经典Java Web框架,提供了一种灵活的方式来生成8位无重复的随机数,并确保每次生成的随机数都是唯一的。 首先,让我们来理解这三个框架的核心功能: 1. **Struts**:这是...

    java 不重复的随机数序列

    在Java编程语言中,生成不重复的随机数序列是一个常见...通过以上讨论,我们可以了解到在Java中生成不重复随机数序列的多种方法,以及如何根据需求进行排序。实际开发中,选择哪种方法取决于具体的应用场景和性能要求。

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

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

    取不重复随机数.rar

    生成不重复随机数的方法有很多种,以下是一些基本策略: 1. **基本随机数生成**: 在编程中,我们通常使用内置的随机数生成函数,如Python的`random`模块或Java的`Random`类。首先,我们需要设定一个范围,比如0到...

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

    下面将详细介绍Java实现生成n个不重复的随机数的方法。 首先,我们需要理解生成随机数的原理。生成随机数可以使用Java的Random类,通过nextInt()方法可以生成一个随机数。但是,这种方法生成的随机数可能会重复。...

    Java产生随机数的两种方式

    本文将详细探讨Java中生成随机数的两种主要方法:`java.lang.Math.random()`静态方法和`java.util.Random`类。 首先,我们来看`java.lang.Math.random()`方法。这是一个静态方法,不需要实例化对象就可以直接调用。...

    JAVA 生成随机数

    玩法2:6+1(可以重复,选的号码在相同的位数上中了几多个,只算从一到九不算0) 输入7个数字(代表购买彩票的号码,最后一位特别号) 根据用户选择的玩法,随机生成开奖号码,与用户输入的号码比较,判断是否中奖...

    生产不重复19位随机数

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

    java生成随机数的方法

    这种方法有效地利用了随机数生成器的能力,同时减少了生成重复字符串的可能性。 此外,`RandomNum`类还包含了一个`rateOfRepeat`方法,用于计算在指定数量的随机字符串中重复率。它创建一个字符串数组,然后遍历...

    随机生成11位数字

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

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

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

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

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

    java产生随机数的几种方式

    以下将详细介绍Java中生成随机数的几种方式。 1. **Math.random() 方法** `Math.random()` 是Java中最常用的方式来生成随机数。它返回一个双精度浮点数,其值在0.0(包括)到1.0(不包括)之间。可以通过简单的...

Global site tag (gtag.js) - Google Analytics