`
java2000.net
  • 浏览: 650835 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

一个生成无重复数字的代码

 
阅读更多

具体代码如下:

import java.util.Random;

public class Util{
 /**随机对象*/
 private static Random rd = null;
 
 /**
  * 返回一个无重复的随机数组
  * @param src 来源数组,所有的数据都来自该数组
  * @return 处理好的数组
  */
 public static int[] random(int[] src){
  //如果源数组为空,则返回
  if(src == null){
   return null; 
  }
  
  rd = new Random();

  //创建返回数组
  int[] tmp = new int[src.length];
  //可供选择的数据个数
  int num = src.length;
  
  //抽取到的数组的下标
  int index;
  //随机抽取,如果某个数字被抽取,则置该数字为0,并放到数组的末尾
  for(int i = 0;i < src.length;i++){
   //随机生成下标
   index = Math.abs(rd.nextInt()) % num;
   //取该值
   tmp[i] = src[index];
   //交换数据
   src[index] = src[num - 1];
   //可选择数量减少1
   num--;
  }
  //返回
  return tmp;
 }
 
 public static void main(String[] args){
  int[] test = {1,2,3,4,5,6,7,8,9};
  int a[] = random(test);
  
  for(int i = 0;i < a.length;i++){
   System.out.println(a[i]); 
  } 
 }
  
}

分享到:
评论

相关推荐

    C#生成不重复字母数字组合的随机数

    在C#编程中,生成不重复的字母数字组合是一个常见的需求,这可能涉及到密码生成、唯一标识符创建或数据加密等多个领域。在这种情况下,我们通常会利用C#的内置类和方法来实现这一功能。标题提到的是“C#生成不重复...

    生成永不重复数字的算法,本人花3000元买的

    标题中的“生成永不重复数字的算法”是一种设计用于创建唯一标识符的技术,它在数据库管理和分布式系统中尤为重要。这样的算法通常需要确保在给定的数字范围内不会产生重复,并且能够高效地进行加密和解密操作。描述...

    C#生成2位或N位不重复字母数字组合

    接下来,我们要编写一个方法,用于生成指定长度的不重复组合。这里我们可以利用`HashSet&lt;char&gt;`来存储已经生成的字符,确保它们不会被重复使用。同时,我们使用`Random`类来随机选择字符: ```csharp using System;...

    自动生成不重复无序化id

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

    随机生成11位数字

    在给定的代码片段中,我们看到一个名为`getRandomString`的方法,其目的是生成一个长度为11的随机字符串。这个字符串包含数字和字母,但根据题目描述,我们需要的是一个纯数字的随机字符串。 #### 2. 修改现有代码 ...

    题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    每层循环从1到4,确保不会重复使用同一个数字。`for(i=1;i;i++)`、`for(j=1;j;j++)`、`for(k=1;k;k++)`就是这个三重循环的表示。 2. **条件判断**: - `if (i!=k&&i!=j&&j!=k)` 这个条件判断确保了生成的三位数的...

    随机产生8位无重复数

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

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

    以下是一个简单的示例代码,展示了如何生成十个不重复的随机数: ```java import java.util.HashSet; import java.util.Random; public class RandomNumberGenerator { public static void main(String[] args) {...

    易语言组合6位不重复数字源码

    对于生成不重复数字组合,我们可以从最小的数字0开始,逐位填充到6位数中,每填一位都检查是否与已填数字重复,如果重复则回溯到上一位,尝试下一个数字。这个过程会递归地进行,直到生成所有可能的组合。 其次,...

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

    这段代码首先创建了一个包含1到range所有数字的`ArrayList`,然后使用`Random`类生成随机索引并从列表中移除,将这些数字添加到`HashSet`中,因为`HashSet`不允许重复元素。当`HashSet`的大小达到指定数量时,循环...

    c程序100例 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

    这种方法不仅可以解决本题的问题,还可以应用于类似的问题,如生成不同位数的无重复数字的数,只需适当调整递归函数的参数即可。 总之,理解排列组合的概念以及如何在C#中利用递归或循环解决这类问题是IT编程中的...

    JS彩票号码随机生成数字代码.zip

    这个"JS彩票号码随机生成数字代码"压缩包可能包含了一个实现此类功能的简单脚本。以下是对这个话题的详细解释: 1. **随机数生成**:在JavaScript中,`Math.random()`函数用于生成介于0(包括)和1(不包括)之间的...

    VB生成不重复的随机数

    根据提供的标题、描述以及部分代码内容,我们可以总结出在Visual Basic (简称VB)环境中生成不重复随机数的主要方法。此技术常用于各种场景,比如彩票系统、抽奖程序或需要无重复随机选择的应用。 ### 一、基本原理 ...

    VBS 生成不重复随机数代码[0-10]

    上面的代码使用了一个数组 `Z` 来存储生成的随机数,并使用 `GetRnd` 函数来生成不重复的随机数。`GetRnd` 函数使用循环来生成随机数,并检查生成的随机数是否已经存在于数组 `Z` 中,如果存在,则重新生成随机数。 ...

    js超简单实用随机产生1-100个数字不重复

    上述代码定义了一个名为`generateUniqueRandoms`的函数,接受一个参数`count`,表示要生成多少个不重复的随机数。函数通过一个`for`循环来生成这些随机数,每次循环都会检查新生成的随机数是否已经在结果数组`result...

    C#输出不重复数字源码

    在这个"输出不重复数字"的问题中,基本情况可能是当需要生成的位数为1时,直接返回0到9的所有数字。递归情况则是在已经选择了一个数字之后,递归地为剩余的位数选择其他未被使用的数字。 以下是一个可能的实现思路...

    php 随机生成10位字符代码

    本文将介绍如何使用PHP脚本语言随机生成一个10位字符的代码字符串。更重要的是,通过理解其原理,开发者可以轻松扩展到自定义任意长度的随机字符串生成。 首先,我们要明确一点:生成随机字符串的核心在于随机选取...

    产生20个不重复的随机数的代码

    在IT领域,生成不重复的随机数序列是一个常见的需求,尤其是在需要进行随机抽样、数据模拟或游戏开发等场景中。下面将详细解析如何通过编程实现这一目标,并深入探讨其背后的算法逻辑和技术要点。 ### 核心知识点:...

    C语言重复数全排列的代码

    输入一个字符串,字符串由字母、数字组成,可能包含重复的字符。生成这些字符的不重复的全排列,并将结果打印到标准输出上。 【输入形式】 从标准输入上读入一个由字母、数字组成的字符串,字符串的长度小于...

    随机不重复数字-代码

    虽然给出的代码可以实现随机不重复数字的生成,但其实现方式并不是最优的。例如,可以考虑使用Fisher-Yates洗牌算法来生成随机排列的数字列表,这种方法不仅效率更高,而且可以避免重复检查已有的数组元素。 ### ...

Global site tag (gtag.js) - Google Analytics