Java中的随机数Random

一个用于生成随机数的类

具体用法:

  //创建随机数对象
        Random random = new Random();

        //随机产生一个int类型取值范围内的数字。
        int num1 = random.nextInt();
        System.out.println(num1);

        //产生一个[0-100]之间的随机数
        int num2 = random.nextInt(101);
        System.out.println(num2);//不包括101

写一个不含重复数字的随机数组

第一种:

int[] num = new int[5];
        boolean flag = true;
        Random random = new Random();
        for (int i = 0; i < num.length; i++) {
            int a = random.nextInt(5);
            for (int j = i - 1; j >= 0; j--) {//当i == 0 的时候这一步不执行
                if (a == num[j]) {
                    flag = false;
                }
            }
            if (flag) {
                num[i] = a;
            } else {
                i--;
                flag = true;
            }
        }
                System.out.println(Arrays.toString(num));

第一种方法的改进:

public static void main(String[] args) {
        int[] num = new int[5];
        Random random = new Random();

        int index = 0;
        while (index < num.length) {
            int a = random.nextInt(5);
            if (contains(num, index, a)) { //把判断有没有变成了一个方法
                num[index++] = a;
            }
        }
        System.out.println(Arrays.toString(num));
    }

    public static boolean contains(int[] a, int index, int temp) {
        for (int i = index - 1; i >= 0; i--) {
            if (temp == a[i]) {
                return false;
            }
        }
        return true;
    }

第二种:

不推荐这种方法,虽然使用了Arrays自带的方法 ,但是这个方法的除最后一个元素以外的元素都是排好序的

这种随机有点不严谨

public static void main(String[] args) {
        int[] a = new int[5];
        Random random = new Random();
        int index = -1;
        while(index < a.length -1){
            int b = random.nextInt(5);
            if(contains(a,b,index)){
                a[++index] = b;
            }
        }
        System.out.println(Arrays.toString(a));
    }
    public static boolean contains(int[] a , int b , int index){
        if (index < 0){
            return true;
        }
            Arrays.sort(a,0,index + 1);//下标为[0,index+1)的数组排序 不包含index+1
        return Arrays.binarySearch(a,0,index + 1,b) < 0;//二分法查找下标为[0,index+1)范围内是否包含b  
    }

到此这篇关于Java中的随机数Random的文章就介绍到这了,更多相关随机数Random内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java常用工具类 Random随机数、MD5加密工具类

    本文实例为大家分享了java常用工具类的具体代码,供大家参考,具体内容如下 Random随机数工具类 package com.jarvis.base.util; import java.util.Random; /** * * * @Title: RandomHelper.java * @Package com.jarvis.base.util * @Description: 随机数工具类 * @version V1.0 */ public class RandomHelper { /** *

  • Java和C的随机数(Random)详解

    目录 一.前言 二.随机数的创建步骤 1.导包 2.创建对象: 3.数据接收 三.Java随机数游戏 四. c语言的猜数字示例图: 总结 一.前言 前面我们学习了Java中的运算符,对运算符也有一些了解了,现在我们来学习一个 新的但且非常有意思的---随机数,随机数的用处在生活中比较少见,但是用处并不少, 比如一些小游戏的制作等等. 二.随机数的创建步骤 1.导包 所谓导包就是在Java中已经定义好的文件,我们直接引用过来即可 随机数导包: import java.util.Random; 2.

  • Java使用Random类生成随机数示例

    本文实例讲述了Java使用Random类生成随机数.分享给大家供大家参考,具体如下: 一 代码 import java.util.Random; class RandomDie { private int sides; private Random generator; public RandomDie(int s) { sides = s; generator = new Random( ); } public int cast( ) { return 1 + generator.nextIn

  • Java和c语言随机数Random代码详细

    目录 一.随机数的创建步骤 1.导包 2.创建对象 3.数据接收 二.Java随机数游戏 三. c语言的猜数字 一.随机数的创建步骤 1.导包 所谓导包就是在Java中已经定义好的文件,我们直接引用过来即可 随机数导包: import  java.util.Random; 2.创建对象 其实创建对象就是在开辟内存空间 随机数创建对象: Random d=new Random();  其中d是任意起的变量名,其余形式格式固定 3.数据接收 数据接收就是创建一个变量去接受产生的随机数. 接受随机数:

  • Java中的随机数Random

    一个用于生成随机数的类 具体用法:   //创建随机数对象         Random random = new Random();         //随机产生一个int类型取值范围内的数字.         int num1 = random.nextInt();         System.out.println(num1);         //产生一个[0-100]之间的随机数         int num2 = random.nextInt(101);         Syst

  • Java中生成随机数的4种方式与区别详解

    目录 在 Java 中,生成随机数的场景有很多,所以本文我们就来盘点一下 4 种生成随机数的方式,以及它们之间的区别和每种生成方式所对应的场景. 1.Random Random 类诞生于 JDK 1.0,它产生的随机数是伪随机数,也就是有规则的随机数.Random 使用的随机算法为 linear congruential pseudorandom number generator (LGC) 线性同余法伪随机数.在随机数生成时,随机算法的起源数字称为种子数(seed),在种子数的基础上进行一定的

  • python中的随机数 Random介绍

    目录 一.random模块简介 二.random模块重要函数 (1)random.random()函数 (2)random.randint()函数 (3)random.uniform()函数 (4)random.randrange()函数 (5)random.choice()函数 (6)random.shuffle()函数 (7)random.sample()函数 一.random模块简介 Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序列中的一

  • Java中的随机数详解

    在java中我们可以使用java.util.Random类来产生一个随机数发生.它有两个构造函数,分别是Random()和Random(long seed).Random()是用当前时间即System.currentTimeMillis()作为发生器的种子,而Random(long seed)是用指定的seed作为发生器的种子. 当随机数发生器就是Random对象产生以后,可以通过对象调用不同的方法:nextInt().nextLong().nextFloat().nextDouble()等来获

  • Java中生成随机数的实现方法总结

    在实际开发工作中经常需要用到随机数.如有些系统中创建用户后会给用户一个随机的初始化密码.这个密码由于是随机的,为此往往只有用户自己知道.他们获取了这个随机密码之后,需要马上去系统中更改.这就是利用随机数的原理.总之随机数在日常开发工作中经常用到.而不同的开发语言产生随机数的方法以及技巧各不相同.笔者这里就以Java语言为例,谈谈随机数生成的方法以及一些技巧. 一.利用random方法来生成随机数. 在Java语言中生成随机数相对来说比较简单,因为有一个现成的方法可以使用.在Math类中,Java

  • 浅谈Java中随机数的几种实现方式

    众所周知,随机数是任何一种编程语言最基本的特征之一.而生成随机数的基本方式也是相同的:产生一个0到1之间的随机数.看似简单,但有时我们也会忽略了一些有趣的功能. 我们从书本上学到什么? 最明显的,也是直观的方式,在Java中生成随机数只要简单的调用: java.lang.Math.random() 在所有其他语言中,生成随机数就像是使用Math工具类,如abs, pow, floor, sqrt和其他数学函数.大多数人通过书籍.教程和课程来了解这个类.一个简单的例子:从0.0到1.0之间可以生成

  • 浅谈Java中的n种随机数产生办法

    我们从书本上学到什么? 最明显的,也是直观的方式,在Java中生成随机数只要简单的调用: java.lang.Math.random() 在所有其他语言中,生成随机数就像是使用Math工具类,如abs, pow, floor, sqrt和其他数学函数.大多数人通过书籍.教程和课程来了解这个类.一个简单的例子:从0.0到1.0之间可以生成一个双精度浮点数.那么通过上面的信息,开发人员要产生0.0和10.0之间的双精度浮点数会这样来写: Math.random() * 10 而产生0和10之间的整数

  • Java中随机数的产生方式与原理详解

    Java中随机数的产生方式与原理 查阅随机数相关资料,特做整理 首先说一下java中产生随机数的几种方式 在j2se中我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以100,他就是个100以内的随机数字,这个在j2me中没有. 在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以生产随机整数.随机float.随机double.随机long,这个也是我们在j2me

  • 浅谈java中Math.random()与java.util.random()的区别

    今天突然想起来,java产生随机数的问题,上机试了一下,找到了一点区别,在这里总结一下: 直接调用Math.random()是产生一个[0,1)之间的随机数, 如果用 java.util.Random random=new Random();random.nextInt() 这样产生一个长整型的随机数并且与上一次是一样的,如果过一会再产生就不会一样了,例如: for (int i = 0; i < 10; i++) { Random random=new Random(); Thread.sle

随机推荐