Java随机数的使用

在java中实现随机数的类有两种,分别是和java.util.Math 和 java.util.Random

第一种:java.lang.Math.random()

Math.random()方法创建的是[0.0,1.0)范围类的浮点数

示例代码:

        int i = 0;
        System.out.println("Math.random生成随机数!");
        while (i < 3) {
            System.out.println("第" + i + "个数:" + Math.random());
            i++;
        }

控制台输出:

第二种:java.util.Random类

java.util.Random类有两种构造器,分别为Random()和Random(long seed)

两种构造器最主要的区别就在于seed的不同,seed是实现Random类所需的变量,也就是Random类创建所需的种子,Random根据它来生成不同的随机数序列.

Random()用的是默认的seed值,而Random(long seed)实现则是根据输入的seed值来生成对应的随机数序列,

也就是说相同seed的Random对象创建的随机数序列相同.

示例代码:

        java.util.Random random1 = new java.util.Random(10);
        java.util.Random random1_sanmeseed = new java.util.Random(10);
        java.util.Random random2 = new java.util.Random();
        System.out.println("random1:"+random1.nextInt());
        System.out.println("random1_sanmeseed:"+random1_sanmeseed.nextInt());
        System.out.println("random2:"+random2.nextInt());

控制台输出:

注:使用nextInt测试时要注意使用无参或者参数相同的方法 否则就是random的seed值相同 也会输出不同的随机数.

由此可见在java.util.Random类的适用范围更广泛一些,随后大致讲下它的几个方法,分别是:

nextInt();nextInt(int bound);nextDouble();

nextInt() nextInt(int bound)的不同在于bound 限制了随机数出现的范围,使用后者方法生成的随机数是在[0,bound)之间 不带参数则生成[-2147483648,2147483647]范围内的随机数,也是int的取值范围.

        java.util.Random random = new java.util.Random();
        for(int i=0;i<10;i++){
            System.out.println("带bound参数方法生成的随机数:"+random.nextInt(10));
            System.out.println("无参数方法生成的随机数:     "+random.nextInt());
        }

控制台输出:

nextDouble()方法 返回的随机数和Math.random()返回的随机数范围相同,均为[0,1)之内的随机数,

那么实现[-3,12)范围内的随机小数怎么办呢?(此问题同样适用于nextInt(),nextFloat()等方法)

        java.util.Random random = new java.util.Random();
        for(int i=0;i<10;i++){
            double num = random.nextDouble()*15-3;
            System.out.println("[-3,12)之间的Double随机数:"+num);
        }

控制台输出:

时间: 2024-08-24 17:49:46

Java随机数的使用的相关文章

学习记录 java随机数的产生机制

java 随机数 一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有. 二.在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数.随机float.随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法. 三.在我们的System类

java随机数与数组的使用。

java随机数与数组的使用.    一:题目 二 代码:  public class Students {    int number;  // 学号    int State ;   // 年级    int Score ;    // 成绩         public Students(int number, int state, int score) {        super();        this.number = number;        State = state; 

Java随机数总结

随机数在实际中使用很广泛,比如要随即生成一个固定长度的字符串.数字.或者随即生成一个不定长度的数字.或者进行一个模拟的随机选择等等.Java提供了最基本的工具,可以帮助开发者来实现这一切. 一.Java随机数的产生方式 在Java中,随机数的概念从广义上将,有三种. 1.通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字. 2.通过Math.random()返回一个0到1之间的double值. 3.通过Random类来产生一个随机数,这个是专业的Ra

java 随机数的生成

生成10个不小于100000的6位数 public static void main(String[] args) { Random random = new Random(); for (int i=0;i<10;i++) { System.out.println("第=="+i+"个邀请码"+(random.nextInt(899999)+100000)); } } 结果: 第==0个邀请码536686 第==1个邀请码161397 第==2个邀请码685

(转)Java随机数

1 随机数的三种产生方式 本章先讲解Java随机数的几种产生方式,然后通过示例对其进行演示. 广义上讲,Java中的随机数的有三种产生方式: (01). 通过System.currentTimeMillis()来获取一个当前时间毫秒数的long型数字.(02). 通过Math.random()返回一个0到1之间的double值.(03). 通过Random类来产生一个随机数,这个是专业的Random工具类,功能强大. 1.1 第1种 通过System.currentTimeMillis()来获取

利用Java随机数计算圆周率π

一.理论篇 1. 数学公式 圆面积公式:π*r*r,其中π为圆周率,r为圆半径: 正方形面积公式:s*s,其中s为边长: 勾股定理:a*a + b*b = c*c,其中a/b分别为直角三角形的两个直角边,c为斜边. 2. 计算方法 考虑下图,边长为r的正方形内嵌了一个以r为半径的1/4圆. InsideCircle面积 = 以r为半径的圆面积 / 4 = π*r*r/4 正方形面积 = r*r 所以, InsideCircle面积 / 正方形面积 = (π*r*r/4) / (r*r) = π/

JAVA随机数集锦

Java产生随机数有两种常规方式 1.使用Math.random(),Math在java.lang.Math中 2.使用Random类,Random在java.util.Random中 Math.random()产生的是0~1之间的随机数,所以产生其他范围的数需要采用 (int)(Math.random() * 倍数) 这种格式完成操作 Random类需要如下声明 Random rd = new Random(); Random random = new Random(100); int i=r

java 随机数不重复

package test; import java.util.HashSet; import java.util.Random; public class Snippet { /** * 随机指定范围内N个不重复的数 * 在初始化的无重复待选数组中随机产生一个数放入结果中, * 将待选数组被随机到的数,用待选数组(len-1)下标对应的数替换 * 然后从len-2里随机产生下一个随机数,如此类推 * @param  max  指定范围最大值 * @param  min  指定范围最小值 * @p

java 随机数

java中一般有两种随机数,一个是Math中random()方法,一个是Random类. 一.Math.random() 随即生成0<x<1的小数. 实例:如何写,生成随机生成出0~100中的其中一个数呢? Math.random()返回的只是从0到1之间的小数,如果要50到100,就先放大50倍,即0到50之间,这里还是小数,如果要整数,就强制转换int,然后再加上50即为50~100. 最终代码:(int)(Math.random()*50) + 50 二.Random类 Random r