• Java_Math类和Random类


    Math类

    java.lang.Math提供了一系列静态方法用于科学计算, 其方法的参数和返回值类型一般都为double型, 如果需要更加强大的数学运算能力计算高等数学中的相关内容, 可使用apache commons下面的Math类库

    Math类的常用方法:

    abs取绝对值
    acos, asin, atan, cos, sin, tan三角函数
    sqrt平方根
    pow(double a, double b), a^b
    max(double a, double b), 取最大值
    min(double a, double b), 取最小值
    ceil(double a), 大于a的最小整数
    floor(double a), 小于a的最大整数
    random(), 返回0.0到1.0的随机数
    long round(double a), double型数据a转换为long型(四舍五入)
    toDegrees(double angrad), 弧度转换为角度
    roRadians(double angdeg), 角度转换为弧度

    /**************示例程序****************/
    public static void main(String[] args) {
    	// 取正相关操作
    	System.out.println(Math.ceil(3.1));
    	System.out.println(Math.floor(3.4));
    	System.out.println(Math.round(3.1));
    	System.out.println(Math.round(3.8));
    	System.out.println("##########################");
    	
    	// 绝对值, 开方, a的b次幂相关操作
    	System.out.println(Math.abs(-1));
    	System.out.println(Math.abs(-1.1));
    	System.out.println(Math.sqrt(36));
    	System.out.println(Math.pow(2, 4));
    	System.out.println("##########################");
    	
    	// Math类中常用的常量
    	System.out.println(Math.PI);
    	System.out.println(Math.E);
    	System.out.println("##########################");
    	
    	// 随机数
    	System.out.println(Math.random());
    }
    
    /*
    4.0
    3.0
    3
    4
    ##########################
    1
    1.1
    6.0
    16.0
    ##########################
    3.141592653589793
    2.718281828459045
    ##########################
    0.02732034556476759
    */
    

    Random类

    Math类中虽然有产生随机数的方法Math.random(), 但是通常需要的随机数的范围并不是[0,1)之间的double类型数据, 这时就需要对其进行一些复杂的运算. 如果使用Math.random()计算过于复杂的话, 可以使用另一种方式得到随机数, 即Random类, 这个类是专门用来生成随机数, 并且Math.random()底层就是调用的Random类的nextDouble()方法

    /******************示例程序*************************/
    import java.util.Random;
    public static void main(String[] args) {
    	Random rand = new Random();
    	
    	// 随机生成[0,1)之间的double类型的数据
    	System.out.println(rand.nextDouble());
    	System.out.println("#########################");
    	
    	// 随机生成int类型允许范围之内的整型数据
    	System.out.println(rand.nextInt());
    	System.out.println("#########################");
    	
    	// 随机生成[0,1)之间的float类型数据
    	System.out.println(rand.nextFloat());
    	System.out.println("#########################");
    	
    	// 随机生成false或true
    	System.out.println(rand.nextBoolean());
    	System.out.println("#########################");
    	
    	// 随机生成[0,10)之间的int类型的数据
    	System.out.println(rand.nextInt(10));
    	System.out.println("#########################");
    	
    	// 随机生成[20,30)之间的int类型的数据
    	System.out.println(rand.nextInt(10) + 20);
    	System.out.println("#########################");
    	
    	// 随机生成[20,30)之间的int类型的数据(此种方法计算较为复杂)
    	System.out.println((int)(rand.nextDouble() * 10) + 20);
    	System.out.println("#########################");
    }
    
    /*
    0.18579466820637747
    #########################
    1695590674
    #########################
    0.8908015
    #########################
    false
    #########################
    9
    #########################
    21
    #########################
    25
    #########################
    */
    
  • 相关阅读:
    转:测试驱动开发全攻略
    转:如何提高自己的归纳总结能力?
    转:从编译链接过程解析static函数的用法
    C++ 不能在类体外指定关键字static
    转:画图解释 SQL join 语句
    转:[置顶] 从头到尾彻底理解KMP(2014年8月22日版)
    转:The Knuth-Morris-Pratt Algorithm in my own words
    转:数组与指针的区别
    删除单链表中间节点
    如果判断两个单链表有交?第一个交点在哪里?
  • 原文地址:https://www.cnblogs.com/hesper/p/9736337.html
Copyright © 2020-2023  润新知