Math类与Random类

目录

一.Math类

二.Random类


一.Math类

static doubleE
          比任何其他值都更接近 e(即自然对数的底数)的 double 值。
static doublePI
          比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。
static doubleabs(double a)
          返回 double 值的绝对值。
static floatabs(float a)
          返回 float 值的绝对值。
static intabs(int a)
          返回 int 值的绝对值。
static longabs(long a)
          返回 long 值的绝对值。
static doubleacos(double a)
          返回一个值的反余弦;返回的角度范围在 0.0 到 pi 之间。
static doubleasin(double a)
          返回一个值的反正弦;返回的角度范围在 -pi/2 到 pi/2 之间。
static doubleatan(double a)
          返回一个值的反正切;返回的角度范围在 -pi/2 到 pi/2 之间。
static doubleatan2(double y, double x)
          将矩形坐标 (xy) 转换成极坐标 (r, theta),返回所得角 theta
static doublecbrt(double a)
          返回 double 值的立方根。
static doubleceil(double a)
          返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。
static doublecopySign(double magnitude, double sign)
          返回带有第二个浮点参数符号的第一个浮点参数。
static floatcopySign(float magnitude, float sign)
          返回带有第二个浮点参数符号的第一个浮点参数。
static doublecos(double a)
          返回角的三角余弦。
static doublecosh(double x)
          返回 double 值的双曲线余弦。
static doubleexp(double a)
          返回欧拉数 edouble 次幂的值。
static doubleexpm1(double x)
          返回 ex -1。
static doublefloor(double a)
          返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
static intgetExponent(double d)
          返回 double 表示形式中使用的无偏指数。
static intgetExponent(float f)
          返回 float 表示形式中使用的无偏指数。
static doublehypot(double x, double y)
          返回 sqrt(x2 +y2),没有中间溢出或下溢。
static doubleIEEEremainder(double f1, double f2)
          按照 IEEE 754 标准的规定,对两个参数进行余数运算。
static doublelog(double a)
          返回 double 值的自然对数(底数是 e)。
static doublelog10(double a)
          返回 double 值的底数为 10 的对数。
static doublelog1p(double x)
          返回参数与 1 之和的自然对数。
static doublemax(double a, double b)
          返回两个 double 值中较大的一个。
static floatmax(float a, float b)
          返回两个 float 值中较大的一个。
static intmax(int a, int b)
          返回两个 int 值中较大的一个。
static longmax(long a, long b)
          返回两个 long 值中较大的一个。
static doublemin(double a, double b)
          返回两个 double 值中较小的一个。
static floatmin(float a, float b)
          返回两个 float 值中较小的一个。
static intmin(int a, int b)
          返回两个 int 值中较小的一个。
static longmin(long a, long b)
          返回两个 long 值中较小的一个。
static doublenextAfter(double start, double direction)
          返回第一个参数和第二个参数之间与第一个参数相邻的浮点数。
static floatnextAfter(float start, double direction)
          返回第一个参数和第二个参数之间与第一个参数相邻的浮点数。
static doublenextUp(double d)
          返回 d 和正无穷大之间与 d 相邻的浮点值。
static floatnextUp(float f)
          返回 f 和正无穷大之间与 f 相邻的浮点值。
static doublepow(double a, double b)
          返回第一个参数的第二个参数次幂的值。
static doublerandom()
          返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
static doublerint(double a)
          返回最接近参数并等于某一整数的 double 值。
static longround(double a)
          返回最接近参数的 long
static intround(float a)
          返回最接近参数的 int
static doublescalb(double d, int scaleFactor)
          返回 d × 2scaleFactor,其舍入方式如同将一个正确舍入的浮点值乘以 double 值集合中的一个值。
static floatscalb(float f, int scaleFactor)
          返回 f × 2scaleFactor,其舍入方式如同将一个正确舍入的浮点值乘以 float 值集合中的一个值。
static doublesignum(double d)
          返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回 -1.0。
static floatsignum(float f)
          返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回 -1.0。
static doublesin(double a)
          返回角的三角正弦。
static doublesinh(double x)
          返回 double 值的双曲线正弦。
static doublesqrt(double a)
          返回正确舍入的 double 值的正平方根。
static doubletan(double a)
          返回角的三角正切。
static doubletanh(double x)
          返回 double 值的双曲线余弦。
static doubletoDegrees(double angrad)
          将用弧度表示的角转换为近似相等的用角度表示的角。
static doubletoRadians(double angdeg)
          将用角度表示的角转换为近似相等的用弧度表示的角。
static doubleulp(double d)
          返回参数的 ulp 大小。
static floatulp(float f)
          返回参数的 ulp 大小。

class Main{
    public static void main(String[] args){
        System.out.println("计算-10的绝对值:"+Math.abs(-10));
        System.out.println("求大于5.6的最小整数:"+Math.ceil(5.6));
        System.out.println("求小于-4.2的最大整数:"+Math.floor(-4.2));
        System.out.println("对-4.6进行四舍五入:"+Math.round(-4.6));
        System.out.println("求2.1和-2.1中的较大值:"+Math.max(2.1,-2.1));
        System.out.println("生成一个大于等于0.0并小于1.0的随机数:"+Math.random());
        System.out.println("计算1.57的正弦值:"+Math.sin(1.57));
        System.out.println("计算4的平方根:"+Math.sqrt(4));
        System.out.println("计算二的3次方根:"+Math.pow(2,3));

    }
}

二.Random类

Random类可以产生指定范围的随机数。Random类提供了两个构造方法,如下:

方法声明功能描述
Random()使用当前系统时间创建一个Random对象
Random(long seed)使用参数seed指定的种子创建一个Random对象

第一个构造方法是无参的,通过它创建的Random对象每次使用的种子是随机的,因此每个对象产生的随机数不同。如果希望创建的多个Random对象产生相同的随机数,则可以在创建对象时调用第二个构造方法,传入相同的参数即可。

第一种构造方法产生随机数:

import java.util.*;
class Main{
    public static void main(String[] args){
        Random random=new Random();
        for(int i=0;i<5;i++){
            System.out.println(random.nextInt(100));//[0,100)
        }
    }
}

可见,两次产生的随机数序列是不一样的。这是因为创建Random对象时没有指定种子,系统会以当前时间戳作为种子,产生随机数。由于每一时刻的时间戳都不一样,所以每一次运行时产生的随机数也不一样。

第二种构造方法:

import java.util.*;
class Main{
    public static void main(String[] args){
        Random random=new Random(13);
        for(int i=0;i<5;i++){
            System.out.println(random.nextInt(100));//[0,100)
        }
    }
}

可见,如果指定了相同的种子,则每次运行所有对象产生的随机数序列都相同。

Matn类提供了生成随机数的random()方法。相对于Math类,Random类提供了更多的方法来生成随机数,不仅可以产生整数类型的随机数,还可以生成浮点数类型的随机数。

Random类的常用方法

protected  intnext(int bits)
          生成下一个伪随机数。
 booleannextBoolean()
          返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。
 voidnextBytes(byte[] bytes)
          生成随机字节并将其置于用户提供的 byte 数组中。
 doublenextDouble()
          返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.01.0 之间均匀分布的 double 值。
 floatnextFloat()
          返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.01.0 之间均匀分布的 float 值。
 doublenextGaussian()
          返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0
 intnextInt()
          返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
 intnextInt(int n)
          返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
 longnextLong()
          返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
 voidsetSeed(long seed)
          使用单个 long 种子设置此随机数生成器的种子。

  • 22
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值