精华内容
下载资源
问答
  • java random生成随机数

    2019-09-15 16:06:45
    生成指定范围内的随机数 这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的...以 Java 语言为例,我们观察其 Random 对象的 nextInt(int) 方法,发现这个方法...

    生成指定范围内的随机数

    这个是最常用的技术之一。程序员希望通过随机数的方式来处理众多的业务逻辑,测试过程中也希望通过随机数的方式生成包含大量数字的测试用例。问题往往类似于:

    如何随机生成 1~100 之间的随机数,取值包含边界值 1 和 100。

    或者是:

    如何随机生成随机的3位整数?

    等等……

    以 Java 语言为例,我们观察其 Random 对象的 nextInt(int) 方法,发现这个方法将生成 0 ~ 参数之间随机取值的整数。例如(假设先有 Random rand = newRandom();,下同):

    rand.nextInt(100);

    这行代码将生成范围0~100 之间的随机数,有趣的是,取值可能为 0 ,但不可能为 100。我们用中学数学课学习的区间表示法,表示为:[0, 100)。

    那么如果要获得区间 [1~100]的随机数,该怎么办呢?稍微动动脑筋就可以想到:区间 [0, 100) 内的整数,实际上就是区间 [0, 99]。因为最大边界为100,可惜不能等于100,因此最大可能产生的“整数”就是99。

    既然rand.nextInt(100) 获得的值是区间 [0, 99],那么在这个区间左右各加 1,就得到了区间 [1, 100]。因此,代码写成:

    rand.nextInt(100)+ 1;

    即可。运行下面的代码,将获得 [1, 100] 的 10 个取值。

    [java] view plain copy

    import java.util.Random;
    public class Test {
    public static void main(String[] args){
    Random rand = new Random();
    for(int i=0; i<10; i++) {
    System.out.println(rand.nextInt(100) + 1);
    }
    }
    }

    同理,很容易知道如果要获得随机两位整数,代码写成:rand.nextInt(90) + 10;

    你一定很惊讶,为什么是这么写出来的。其实,在 nextInt() 方法中作为参数的数字 90 表示:你希望生成的随机数的所有取值的可能性的数量(在本命题中,两位整数取值为 [10, 99],共90个数);加好后面的数字 10 ,表示区间的最小取值。

    你可以验证下,按照这样理解,[1, 100] 的随机数,是不是应该写成rand.nextInt(100) + 1 。千万不要把参数 100 理解为最大取值。只是区间 [1, 100] 正好从 1 开始,所以最大取值和取值可能性数量正好同为 100。

    因此,

    生成随机三位数的代码为:

    rand.nextInt(900)+ 100;

    生成区间 [64,128] 中随机值的代码为:

    rand.nextInt(65)+ 64;

    取值可能性的数量是如何计算出来的呢?当然是 最大取值-最小取值+1 ,所以,有最终公式如下:

    // For Java

    int randNumber =rand.nextInt(MAX - MIN + 1) + MIN; // randNumber 将被赋值为一个 MIN 和 MAX 范围内的随机数

    展开全文
  • java random生成随机数详解

    千次阅读 2020-11-25 17:11:40
    可以使用System.currentTimeMillis(),但这这种方式获取的不能称为严格意义的随机数,虽然他是一直变的,但他不是随机的。表示获取当前系统时间,产生一个当前的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数 ...

    想了解更多数据结构以及算法题,可以关注微信公众号“数据结构和算法”,每天一题为你精彩解答。也可以扫描下面的二维码关注
    在这里插入图片描述


    1,使用System.currentTimeMillis()

    可以使用System.currentTimeMillis(),但这这种方式获取的不能称为严格意义的随机数,虽然他是一直变的,但他不是随机的。表示获取当前系统时间,产生一个当前的毫秒,这个毫秒其实就是自1970年1月1日0时起的毫秒数

        public static void main(String[] args) {
            System.out.println("currentTimeMillis函数执行的结果:" + System.currentTimeMillis());
        }
    

    看下执行结果

    > Task :javatest:BRandom.main()
    currentTimeMillis函数执行的结果:1606293741253
    

    2,使用Math.random()

    这个方法会生成一个大于等于0,并且小于1的随机数(不等于1,但可以等于0),返回的是double类型的。

    Math.random()*(n-m)+m:表示的是生成大于等于m且小于n的随机数(这里m<n);

        public static void main(String[] args) {
            System.out.println("Math.random()函数执行的结果:" + Math.random());
        }
    

    3,使用Random类

    直接初始化Random来生成随机数

        public static void main(String[] args) {
            Random random = new Random();//创建随机数生成器
            System.out.println(random.nextDouble());//获取的随机数范围是[0.0,1.0)
            System.out.println(random.nextFloat());//获取的随机数范围是[0.0,1.0)
            System.out.println(random.nextBoolean());//获取随机的boolean类型
            System.out.println(random.nextInt());//获取随机的int类型数据
            System.out.println(random.nextInt(10));//获取的随机数范围是[0,10)
            System.out.println(random.nextLong());//获取随机的long类型数据
        }
    

    上面的方式生成的随机数每次都是随机的,只要每次运行,结果都会不一样。

    这里还可以使用种子seed来创建随机数,像下面代码这样,虽然运行的结果也是随机数,但每次运行的时候结果都是一样的。

        public static void main(String[] args) {
            Random random = new Random(10);//创建随机数生成器
            System.out.println(random.nextDouble());//获取的随机数范围是[0.0,1.0)
            System.out.println(random.nextFloat());//获取的随机数范围是[0.0,1.0)
            System.out.println(random.nextBoolean());//获取随机的boolean类型
            System.out.println(random.nextInt());//获取随机的int类型数据
            System.out.println(random.nextInt(10));//获取的随机数范围是[0,10)
            System.out.println(random.nextLong());//获取随机的long类型数据
        }
    

    比如我现在电脑运行的结果如下

    > Task :javatest:BRandom.main()
    0.7304302967434272
    0.25780278
    false
    254270492
    6
    4503168388465453601
    

    无论运行多少次,结果都是不会变的。


    在这里插入图片描述

    展开全文
  • javaRandom生成随机数

    千次阅读 2018-07-24 19:58:20
    上述的代码是生成1-100之间的整数随机数。 调用Math.random()生成的是[0.0,1)的double类型的数据,然后如果想要生成某一阶段的数据,例如1-100,就需要分两部分: 1.先生成0-99的,即Math.random()*100 2.再加上1...

     int number = (int)(Math.random()*100)+1;

    上述的代码是生成1-100之间的整数随机数。

    调用Math.random()生成的是[0.0,1)的double类型的数据,然后如果想要生成某一阶段的数据,例如1-100,就需要分两部分:
    1.先生成0-99的,即Math.random()*100

    2.再加上1得到1-100的。

    如果要生成5-11的呢?

    先把这儿范围化成0-6,(int)(Math.random()*7+5).差不多就是这个规律。

    int rand=rand.nextInt(max - min + 1) + min;

    展开全文
  • javaRandom生成随机数

    千次阅读 2019-05-11 10:49:31
    package com.javabase.sss;...import java.util.Random; public class randomkk { public static void main(String[] args) { Random ran = new Random(80); for (int i = 0; i < 80; i++) { Syste...
    
    package com.javabase.sss;
    
    import java.util.Random;
    
    public class randomkk {
    
    	public static void main(String[] args) {
    		Random ran = new Random(80);
    		for (int i = 0; i < 80; i++) {
    			
    			System.out.println(ran.nextInt(80));
    		}
    		
    
    	}
    
    }
    
    
    
    展开全文
  • 通过 Java 中的 java.util.Random 随机生成一个 [0, 100) 区间的整数。 0 ~ 99 之间,每个数字出现的概率是 1%,那么这个随机整数落在 [0, 9) 区间的概率是 10%,落在 [10, 100) 之间的概率就...
  • 主要介绍了Java使用Random生成随机数,结合实例形式分析了java基于Random生成随机数与遍历输出相关操作技巧,需要的朋友可以参考下
  • java随机生成随机数 Generating a series of random numbers is one of those common tasks that crop up from time to time. In Java, it can be achieved simply by using the java.util.Random class. 生成一...
  • * import java.util.Random; * B:创建对象 * Random r = new Random(); * C:获取随机数 * int number = r.nextInt(10); * 获取数据的范围:[0,10) 包括0,不包括10 */ ...
  • 高并发情况下你还在用Random生成随机数?

    万次阅读 多人点赞 2021-04-05 23:42:13
    前言 在代码中生成随机数,是一个非常常用的功能,并且JDK已经提供了一个现成的Random类来实现它,并且Random类是线程安全的。 下面是Random.next()生成一个随机整数的实现: protected int next(int bits) { long ...
  • 使用Random生成随机数

    千次阅读 2018-07-13 11:22:17
    这里是用Random来实现的,你可根据不同的场景使用不同的Random具体使用场景可看我上篇文章 Java生成随机数Random、ThreadLocalRandom、SecureRandom、Math.random()/*根据指定长度生成字母和数字的随机数 ...
  • * 使用java.lang.Math类生成随机数 */ // 生成大于等于0.0到小于1.0的double型正数 double num = Math.random(); System.out.println(num); //生成0-9之间的随机整数 int num1 = (int)(Math.random()*10);...
  • Java Random类的详细介绍(Java生成随机数)一、Random类的使用1.Random生成随机数(int)的基本语法:2.几种常用的随机数生成二、Random类的详细介绍1.生成指定范围的数字2.Random.nextInt()与Math.random()的区别 ...
  • Random生成随机数

    2020-03-21 20:40:47
    Java已经为我们提供好了产生随机数的类---Random: 作用:用于产生一个随机数 使用步骤:导包:import java.util.Random; 创建对象:Random r = new Random(); 获取随机数:int number = r.nextInt(10); 产生的数据为...
  • Java随机生成一个随机数,根据每次猜想的提醒完成对随机数的猜测。 需要输入一个数,放入一个变量里 生成随机数,也需要放入一个变量里 进行循环,对循环的控制次数 把输入的数和生成随机数进行比较,给出...
  • 本文主要介绍Java生成随机数的方法,比java.util.Random生成的随机数效果更好一些。 原文地址:Java 不同于java.util.Random生成随机数的方法及示例代码
  • java如何生成随机数

    万次阅读 多人点赞 2019-04-28 21:14:17
    java生成随机数有两种方法: 1、使用Math方法,Math.random()随机生成一个double类型[0,1),如果想生成1~100的随机数: 如:int num = (int)(Math.random()*100); 2、使用Random方法, Random random = new ...
  • 利用 java.util.Random 工具类可以生成随机数,以jdk1.8为例 1、Random对象的创建 我们先来看下Random的构造方法 // 无参构造 public Random(){} // 带参构造 public Random(long seed){} 我们来看一下它...
  • Android中利用Random生成随机数

    万次阅读 2014-01-03 11:43:37
    MainActivity如下: package cc.test; import java.util.HashSet; import java.util.Random; import android.app.Activity;...import android.os.Bundle;... * Java中利用Random生成随机数 * * 参考资料: * 1
  • 做游戏后台的,就避免不了生成随机数,随机物品给玩家,就会存在大量的调用随机方法的可能。我们探讨下哪种写法比较合适。 java.util.Random java.util.Random 从Java 1.0开始就存在了。它是一个线程安全类,理论...
  • 论文实验中需要给PM、VM的资源容量随机赋值,所以在网上查了一些Java生成随机数的方法。 Java生成随机数Random Random Random是一个用于产生随机数的生成器。 ...
  • 以jdk 1.8 为例,java生成随机数的方式有: Math.random(); 其中 Math.random() 方法 会默认生成一个 [ 0.0 ,1.0} 之间的一个数值,即生成随机数的范围是: 0.0 <= 随机数 < 1.0 所以,如果我们希望生成...
  • JAVA中利用Math.random生成随机数

    千次阅读 2016-09-25 01:35:52
    吹水环节:刚升大二 刚学习JAVA 此前学过C的基础 据说写博客能帮自己复习 还能发现很多有相同经历的人 完 我实在编不下去了 开始吧 之前没写过博客 也不知道...利用Math.random()方法随机生成一个数 代码1:public cl
  • Java改变生成随机数的平均值(改变生成随机数的概率) 最近做普通商户微信发红包的接口,需求是可以发1-100元的红包,要求总红包金额的平均值为2 按照Javarandom函数生成红包金额:1+ (new Random().nextFloat() *...
  • JAVA生成随机数

    万次阅读 2021-04-25 18:48:44
    Random rand = new Random(); for(int i=0; i<10; i++) { System.out.println(rand.nextInt(10) + 1); } 方式二 for (int i = 0; i < 50; i++) { arr[i]=(int)(100*Math.random()); }
  • java生成随机数

    2020-06-11 19:53:50
    java生成随机数 Java中提供了一个获取随机数的一个类(Math) Math:此类在java.lang包下,jvm会自动导入,所以无需import导包 生成随机数要使用Math类下的方法:random() 方法的返回值是[0.0 - 1.0) 1.获取[0.0 ...
  • 我们来说说java常见的生成随机数的几种方式:Random,ThreadLocalRandom,SecureRandom;其实产生随机数有很多种方式但我们常见的就这几种,如果需要详细了解这个三个类,可以查看JAVA API. 1.先说说我们最常用的Random ...
  • 作用:RandomJava写好的一个类, 作用是用于生产随机数的.使用步骤: 导入包 创建Random对象 调用其中的功能, 生产随机数例题:系统产生一个1-100之间的随机数,请猜出这个数据是多少。import java.util.Random;...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,486
精华内容 20,194
关键字:

java的random生成随机数

java 订阅