Math类、Random类

Math类

Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数
Math类的方法全是静态方法,直接使用类名调用。
Math类中有两个常量:E和PI
public static final double E:自然对数的基数。
public static final double PI:圆周长与其直径的比率,即圆周率。

方法

Math类中有很多数学运算的方法,每种方法也有其对应的重载方法,以下只是部分举例,可以通过查帮助文档的方式使用更多方法。
public static double ceil(double a)
返回大于或等于参数的最小(最接近负无穷大) double值,等于一个数学整数。
public static double floor(double a)
返回小于或等于参数的最大(最接近正无穷大) double值,等于一个数学整数。
public static int max(int a,int b)
返回两个 int值中的较大值。
public static double pow(double a,double b)
将第一个参数的值返回到第二个参数的幂,即返回a的b次幂
public static int round(float a)
返回参数最接近的int ,其中int四舍五入为正无穷大。
public static double sqrt(double a)
返回double值正确舍入的正平方根。

public class Demo {
    public static void main(String[] args) {
        System.out.println(Math.ceil(3.14));
        System.out.println(Math.floor(3.14));
        System.out.println(Math.max(3, 5));
        System.out.println(Math.pow(3, 2));
        System.out.println(Math.round(5.35));
        System.out.println(Math.sqrt(4));
    }
}
/*
输出结果:
4.0
3.0
5
9.0
5
2.0
*/

public static double random()
返回一个double值为正号,大于等于0.0 ,小于1.0 。 返回的值是从该范围(大约)均匀分布而伪随机选择的。

Random类

该类的实例用于生成伪随机数的流。

构造方法

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

Random random = new Random();

public Random(long seed)
使用单个long种子创建新的随机数生成器。 种子是通过方法next(int)维护的伪随机数发生器的内部状态的初始值。

Random random = new Random(1L);

两种构造方法的区别在使用过程便会体现出,此处只时简单介绍

方法

该类中还有其他的方法,如果需要可以查帮助文档,以下只是举例。
public int nextInt()
返回下一个伪随机数,从这个随机数生成器的序列中均匀分布int值。

class Demo
{
	public static void main(String[] args)
	{
		 Random random = new Random();
		 for (int i = 0; i < 100; i++) 
		 {
		     //生成的整数的范围是int的范围
		     int num=random.nextInt();
		     System.out.println(num);
		 }
 	}
 }
 //输出结果为100int类型的整数,范围为int的范围

在实际使用中,我们一般不需要生成范围这么大的整数,因此我们未使用nextInt的重载方法
public int nextInt(int bound)
返回伪随机的均匀分布int值介于0(含)和bound(不包括),从该随机数生成器的序列绘制。

class Demo
{
	public static void main(String[] args)
	{
		 Random random = new Random();
		 for (int i = 0; i < 100; i++) {
            //取值范围为0-100 可取0.不可取100
            int num=random.nextInt(100);
            System.out.println(num);
        }
 	}
 }
 //输出结果为100个int类型的整数,结果为0到100之间

public void nextBytes(byte[] bytes)
生成随机字节并将它们放入用户提供的字节数组中。 产生的随机字节数等于字节数组的长度。

class Demo
{
	public static void main(String[] args)
	{
		 Random random = new Random();
		 byte[] bytes=new byte[10];
         random.nextBytes(bytes);
         System.out.println(Arrays.toString(bytes));
 	}
 }
 //bytes数组中会随机存放10个byte类型的整数

两种构造方法的区别

public class Demo {
    public static void main(String[] args) {
        Random random = new Random(1L);
        for (int i = 0; i < 10; i++) {
            int num=random.nextInt(100);
            System.out.println(num);
        }
    }
}
//运行第一遍时,会产生10个整数,再次运行10个整数的值不变
//准确说,随机生成的整数是由种子的值决定的
//而无参构造方法是每次产生不确定的随机数,每次运行结果都是不一样的
发布了26 篇原创文章 · 获赞 1 · 访问量 335

猜你喜欢

转载自blog.csdn.net/weixin_45919908/article/details/103943528