2023/ 7/24

zhenaifen / 2023-07-24 / 原文

今天主要了解了Java中的Math类和Random类,这两个类都是Java中非常常用的类,里面有许多有用的工具。

Math类中提供了很多数学计算的方式例如对数、指数、绝对值还有三角函数等,而Random类是JavaJDK中的随机数生成类。

package Math类;

public class 三角函数方法 {
    public static void main(String[] args)
    {
        double b,c;
        b=Math.sin(Math.PI/2);//Java中的三角函数采用的参数是弧度制
        System.out.println(b);
        System.out.println(Math.cos(Math.PI/3));//这里的PI是double类型,所以会有误差
        System.out.println(Math.tan(Math.PI/4));
        System.out.println(Math.acos(Math.sqrt(2)/2)==Math.PI/4);
        System.out.println(Math.toRadians(180));//角度转为弧度
        System.out.println(Math.toDegrees(Math.PI));//弧度转为角度
    }
}
package Math类;

public class 指数方法 {
    public static void main(String[] args)
    {
        System.out.println(Math.exp(2));//计算e的2(n)次方
        System.out.println(Math.log(Math.E));//计算lne(n)
        System.out.println(Math.log10(10));//计算lg10(n)
        System.out.println(Math.sqrt(4));//计算平方根
        System.out.println(Math.cbrt(8));//计算立方根
        System.out.println(Math.pow(2, 3));//计算2(a)的3(b)次方
        
    }
}
package Math类;

public class 取整函数方法 {
    public static void main(String[] args)
    {
        System.out.println(Math.ceil(2.1));//返回大于等于参数的最小整数
        System.out.println(Math.floor(2.1));//返回小于等于参数的最大整数
        System.out.println(Math.rint(2.5));//返回最接近参数的整数,同样接近返回偶数
        System.out.println(Math.round(2.5f));//将参数加上0.5后向下取整,标明f的返回int型
        System.out.println(Math.round(3.4));//没表明f的返回long型
    }
}
package Math类;

public class 最值绝对值方法 {
    public static void main(String[] args)
    {
        System.out.println(Math.max(3.1, 3));//二者间的最大值,参数为整型,长整型,单精度,双精度不等
        System.out.println(Math.min(5.4f, 3l));//二者间的最小值
        System.out.println(Math.abs(-211.312));//求绝对值
    }
}

Random类可以成各种类型的随机数并且可以自己设定范围和随机数子

package Random类;
import java.util.Random;
public class 随机数 {
    public static void main(String[] args)
    {
        Random rd1=new Random();//以系统当前时间作为随机数生成器种子
        Random rd2=new Random(231);//自己设计随即数生成器种子
        System.out.println(rd1.nextInt(10,20));//随机生成一个整数,括号内为范围10(a)~20(b)不包括20
        System.out.println(rd2.nextFloat(10));//随机生成一个单精度浮点数,范围是0~10(n)不包括10
        System.out.println(rd1.nextBoolean());
        System.out.println(rd1.nextDouble());
        System.out.println(rd1.nextGaussian(10,20));//随机生成概率密度为高斯分布的双精度浮点型的值
    }
}