`
thunderbow
  • 浏览: 157353 次
  • 性别: Icon_minigender_1
  • 来自: beijing
社区版块
存档分类
最新评论

生成不重复的随机数 java

阅读更多
public class Test
{

    public static void main(String[] args)
    {
        int[] arr = new int[10];

        for (int i = 0; i < 10; i++)
        {
            arr[i] = (int) (Math.random() * 40) + 1;
            for (int j = 0; j < i; j++)
            {
                if (arr[j] == arr[i])
                {
                    i--;
                    break;
                }
            }
        }
        for (int i = 0; i < 10; i++)
            System.out.print(arr[i] + " ");
    }
}


b. 

Java code 


import   java.util.*; 
public   class   Test 
{ 
        
        public   static   void   main(String[]   args) 
        { 
                int   n=40; 
                int[]   num   =   new   int[n]; 
                for(int   i=0;i <num.length;i++) 
                        num[i]   =   i+1; 
                int[]   arr   =   new   int[10]; 
                for(int   i=0;i <arr.length;i++) 
                { 
                        int   r   =(int)(Math.random()*n); 
                        arr[i]=num[r]; 
                        num[r]=num[n-1]; 
                        n--; 
                } 
                for(int   i=0;i <arr.length;i++) 
                        System.out.print(arr[i]+"   "); 
        } 
} 




c. 

Java code 


import   java.util.*; 
public   class   Test 
{ 
        
        public   static   void   main(String[]   args) 
        { 
                LinkedList <Integer>   myList=   new   LinkedList <Integer> (); 
                int   n=40; 
                for(int   i=0;i <n;i++) 
                        myList.add(i+1); 
                int[]   arr   =   new   int[10]; 
                for(int   i=0;i <arr.length;i++) 
                { 
                        arr[i]=myList.remove((int)(Math.random()*n)); 
                        n--; 
                } 
                for(int   i=0;i <arr.length;i++) 
                { 
                        System.out.print(arr[i]+"   "); 
                } 
        } 
} 




d. 

Java code 


import   java.util.*; 
public   class   Test 
{ 
        
        public   static   void   main(String[]   args) 
        { 
                Set <Integer>   mySet   =   new   LinkedHashSet <Integer> (); 
                while(mySet.size() <10) 
                { 
                        mySet.add((int)(Math.random()*40+1)); 
                } 
                for(Integer   i:mySet) 
                { 
                        System.out.print(i+"   "); 
                } 
        } 

}

 

第一种方法,在一个待选数组中随机产生一个数,然后把他放到待选数组的最后,然后从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生成不重复的任意位随机数

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

    取不重复随机数.rar

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

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

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

    随机产生8位无重复数

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

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

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

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

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

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

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

    java 不重复的随机数序列

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

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

    在IT开发领域,生成不重复的编号或标识符是一个常见的需求,特别是在数据库记录、订单号、唯一用户ID等场景。为了满足这一需求,开发者经常利用系统时间作为基础,结合其他算法来生成这样的唯一序列。标题提到的...

    生产不重复19位随机数

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

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

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

    0-99的不重复随机数

    生成不重复的随机数通常涉及到两个主要步骤:一是生成随机数,二是确保其唯一性。在大多数编程语言中,我们可以通过以下方式实现: 1. **生成随机数**:首先,我们需要一个随机数生成器。例如,在Python中,可以...

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

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

    数组放不重复的随机数

    需要注意的是,随着数组长度的增加,生成不重复随机数的时间复杂度也会相应提高。因此,在实际应用中还需考虑算法的效率问题。此外,还可以尝试使用其他数据结构(如集合类`Set`)来优化去重过程,进一步提高程序...

    产生不重复随机数算法

    本文将深入探讨一种在Java中实现的高效算法,该算法能够生成指定范围内的不重复随机数数组,特别适用于随机组题等应用场景。 ### 核心知识点解析 #### 1. 算法原理 算法的核心思想是首先创建一个包含指定范围内...

    随机生成11位数字

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

    python生成不重复随机数和对list乱序的解决方法

    首先,生成不重复随机数的方法。Python的`random`模块提供了`sample`函数,它可以从一个列表或序列中随机抽取指定数量的不重复元素。例如,如果你有一个列表`list = [12, 23, 13, 14, 78, 234, 123, 12345]`,想要...

Global site tag (gtag.js) - Google Analytics