zoukankan      html  css  js  c++  java
  • Java 随机数的产生

    一、通过Math类的random()方法生成随机数

    默认情况下,Math.random()产生的随机数范围为大于等于0小于1的double型随机数。但是只要对这个方法进行一些灵活的处理,就可以获取任意范围的随机数。

    例1:(int)(Math.random()*n),此时会产生一个大于等于0小于n之间的随机数。

    说明:(int)只是截取整数部分,不会四舍五入。另外(int)只会转换最近的。如(int)5.2/2.0=2.5;

    (int)(5.2/2.0)=2。

    例2: m +(int) (Math.random()*n),返回大于等于m小于m+n(不包括m+n)之间的随机数。

               说明:要产生x到y的随机数,先产生0到y – x的随机数,然后加上x。比如:

                  x + (int)(Math.random()*(y - x));

    例3:(char)('a'+Math.random()*('z'-'a'+1));返回字符a~z之间的随机字符。

             说明:同样也可以得到A~Z之间的随机字符。

    例4:(int)(Math.random()*50%33 + 2);产生2到35的随机数。

    注意:random()方法返回的值实际上是伪随机数,它通过复杂的运算得到一系列的数。该方法是通过当前时间作为随机数生成器的参数,所以每次执行程序都会产生不同的随机数。

    二、通过Random类生成随机数

    java.util.Random有两种构造方法,分别是Random()和Random(long seed)。Random()使用系统当前时间即System.currentTimeMills()作为发生器种子。Random(long seed)使用指定的seed作为发生器的种子。随机数发生器(Random)对象产生以后,通过调用不同的方法获得不同类型的随机数。

    常用的方法:

    说明:int型内存分配4个字节,共32位,因此最多能表示232个数。如果最高位是0的话,表示正数:0到231-1(减去1是因为从0开始)。如果最高位是1的话,表示负数:-231到0。

    注意:如果两个Random对象使用相同的种子,并且以相同的顺序调用相同得到函数那他们 的返回结果完全相同。

    例1:获取指定范围内的随机数(随机数控制在某个范围内,使用求余运算和Math.abs()方法)。

    Random  r = new Random();

    Math.abs( r.nextInt()%10); 返回0到10的随机数。

  • 相关阅读:
    tomcat日志切割脚本
    开源项目推荐:GSL科学计算函数库(GNU Scientific Library),实现VS2019源码编译
    MCUXpresso环境开发(本文争取做到您能够快速简易应用入门,知道大体流程,复杂功能和窗口设置一律不管)
    Arduino uno r3 使用 ESP8266 UARTWiFi 透传模块
    ESP8266引脚的说明
    windows10安装Trading View出错解决办法
    windows or linux 64位安装talib包
    python中list数组指定类型
    面试官问我JVM调优,我忍不住了!
    稳了!我准备了1个晚上的CMS垃圾收集器
  • 原文地址:https://www.cnblogs.com/zheting/p/7751849.html
Copyright © 2011-2022 走看看