• java中random()函数用法介绍


    Random()

    创建一个新的随机数生成器。
     

     代码如下 复制代码
    Random(long seed)

    使用单个 long 种子创建一个新的随机数生成器。

    我们可以在构造Random对象的时候指定种子,如:

     代码如下 复制代码

    Random r1 = new Random(20);

    或者默认当前系统时间对http://www.111cn.net/jsp/Java/45403.htm 应的相对时间有关的数字作为种子数:

     代码如下 复制代码

    Random r1 = new Random();


    种子数只是随机算法的起源数字,和生成的随机数字的区间无关。

    2、Random类中的常用方法

    下面对这些方法做一下基本的介绍:

     代码如下 复制代码

    a、public boolean nextBoolean()

    该方法的作用是生成一个随机的boolean值,生成true和false的值几率相等,也就是都是50%的几率。

     代码如下 复制代码

    b、public double nextDouble()

    该方法的作用是生成一个随机的double值,数值介于[0,1.0)之间。

     代码如下 复制代码
    c、public int nextInt()

    该方法的作用是生成一个随机的int值,该值介于int的区间,也就是-231到231-1之间。

    如果需要生成指定区间的int值,则需要进行一定的数学变换,具体可以参看下面的使用示例中的代码。

     代码如下 复制代码
    d、public int nextInt(int n

    )

    该方法的作用是生成一个随机的int值,该值介于[0,n)的区间,也就是0到n之间的随机int值,包含0而不包含n。

    如果想生成指定区间的int值,也需要进行一定的数学变换,具体可以参看下面的使用示例中的代码。

     代码如下 复制代码

    e、public void setSeed(long seed)

    该方法的作用是重新设置Random对象中的种子数。设置完种子数以后的Random对象和相同种子数使用new关键字创建出

    的Random对象相同。

    3、Random类使用示例

    使用Random类,一般是生成指定区间的随机数字,下面就一一介绍如何生成对应区间的随机数字。以下生成随机数的

    代码均使用以下Random对象r进行生成:

     代码如下 复制代码

    Random r = new Random();

    a、生成[0,1.0)区间的小数

     代码如下 复制代码

    double d1 = r.nextDouble();

    直接使用nextDouble方法获得。

    b、生成[0,5.0)区间的小数

     代码如下 复制代码

    double d2 = r.nextDouble() * 5;

    因为nextDouble方法生成的数字区间是[0,1.0),将该区间扩大5倍即是要求的区间。


    同理,生成[0,d)区间的随机小数,d为任意正的小数,则只需要将nextDouble方法的返回值乘以d即可。

    c、生成[1,2.5)区间的小数

     代码如下 复制代码

           double d3 = r.nextDouble() * 1.5 + 1;

    生成[1,2.5)区间的随机小数,则只需要首先生成[0,1.5)区间的随机数字,然后将生成的随机数区间加1即可。

    同理,生成任意非从0开始的小数区间[d1,d2)范围的随机数字(其中d1不等于0),则只需要首先生成[0,d2-d1)区间的

    随机数字,然后将生成的随机数字区间加上d1即可。

    d、生成任意整数

     代码如下 复制代码

    int n1 = r.nextInt();

    直接使用nextInt方法即可。

    e、生成[0,10)区间的整数

     代码如下 复制代码

    int n2 = r.nextInt(10);

    n2 = Math.abs(r.nextInt() % 10);

    以上两行代码均可生成[0,10)区间的整数


    均匀分布性

     代码如下 复制代码

    import java.util.Random;
     
    public class RandomDemo {
        /**
         * 小伙部落
         *
         * @param args
         */
        public static void main(String[] args) {
            Random r = new Random();
            int n5 = r.nextInt(100);
            String ran = "";
            if (n5 < 55) {       //55个数字的区间,55%的几率
                ran = "55%";
            } else if (n5 < 95) {//[55,95),40个数字的区间,40%的几率
                ran = "40%";
            } else {
                ran = "5%";     //剩余几率,你懂得!
            }
            System.out.println(ran);
        }
    }

  • 相关阅读:
    URLEncode解决url中有特殊字符的问题
    监控系统概览
    SpringBoot 上传文件夹
    关于postgresql报 ERROR: XXX does not exist
    postgresql学习
    git学习
    学习博客
    面试准备
    jvm
    线程池面试题
  • 原文地址:https://www.cnblogs.com/alibai/p/4122076.html
Copyright © 2020-2023  润新知