• java随机数Reandom(简单介绍)


    简单介绍

    Java中存在着两种Random函数

    一、java.lang.Math.Random;

      调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。

    二、java.util.Random

      Random()的两种构造方法:

         1、Random():创建一个新的随机数生成器。

         2、Random(long seed):使用单个 long 种子创建一个新的随机数生成器。

        我们可以在构造Random对象的时候指定种子(这里指定种子有何作用,请接着往下看)

        如:Random r1 = new Random(20);或者默认当前系统时间的毫秒数作为种子数:Random r1 = new Random();

        需要说明的是:你在创建一个Random对象的时候可以给定任意一个合法的种子数,种子数只是随机算法的起源数字,和生成的随机数的区间没有任何关系。

        Java产生随机数需要有一个基值seed,在第一种方法中基值缺省,则将系统时间作为seed。

         普通方法:

         1、public synonronized void setSeed(long seed) 该方法是设定基值seed。

         2、public int nextInt() 该方法是产生一个整型随机数。

        3、public long nextLong() 该方法是产生一个long型随机数。

        4、public float nextFloat() 该方法是产生一个Float型随机数。

        6、public double nextDouble() 该方法是产生一个Double型随机数。

        7、public synchronized double nextGoussian() 该方法是产生一个double型的Goussian随机数。

    案列:

    package com.wbg;
    
    import java.lang.*;
    import java.util.Random;
    
    public class RandomApp {
        public static void main(String args[]) {
            Random ran1 = new Random();
            Random ran2 = new Random(12345);//创建了两个类Random的对象。
            System.out.println("The 1st set of random numbers:");
            System.out.println(" Integer:" + ran1.nextInt());
            System.out.println(" Long:" + ran1.nextLong());
            System.out.println(" Float:" + ran1.nextFloat());
            System.out.println(" Double:" + ran1.nextDouble());
            System.out.println(" Gaussian:" + ran1.nextGaussian());          //产生各种类型的随机数
            for (int i = 0; i < 5; i++) {
                System.out.println(ran2.nextInt() + " ");
                if (i == 2)
                    System.out.println();//产生同种类型的不同的随机数。
            }
        }
    }
    View Code

    也可以有nextFloat等等,各种基本类型都有 Math.random也可以

    比如说你想要0-10之间的随机数

    你可以这样写 (int)(Math.random()*10);

    《JAVA产生指定范围的随机数》 产生机制: 产生Min-Max之间的数字 实现原理:

    //不能设定为int,必须设定为long

    Math.round(Math.random()*(Max-Min)+Min) long Temp; 

    //产生1000到9999的随机数

    Temp=Math.round(Math.random()*8999+1000);

    总结:

    //第一个参数是结束数字 第二个参数是开始的数字
    public static int reandom(int stop,int stat ){
            return (int)Math.round(Math.random()*(stat-stop)+stop);
        }
  • 相关阅读:
    简单粗暴的tensorflowRNN
    简单粗暴的tensorflow多层感知机(MLP)
    简单粗暴的tensorflow模型导出
    Tensorflow
    简单粗暴的tensorflowTensorBoard可视化
    linux deb文件安装
    numpy.squeeze()的用法
    pandas
    图像融合opencv中addWeighted()
    numpy线性代数
  • 原文地址:https://www.cnblogs.com/weibanggang/p/9467106.html
Copyright © 2020-2023  润新知