Math类 & Random类

Math类:它是一个工具类,它的构造器被定义成private的,因此无法创建其对象,Math类中所有方法都是类方法,可以直接通过类名来调用它们。Math还提供了两个静态属性:PI、E,它们的值分别等于3.14159.....和e


public static void main(String[] args) {
  //将弧度转换为角度
  System.out.println(Math.toDegrees(1.57));
  //将角度转换成弧度
  System.out.println(Math.toRadians(90));
  //计算反余弦
  System.out.println(Math.acos(1.2));
  //计算反正弦
  System.out.println(Math.asin(0.8));
  //取整,返回小于目标的最大整数
  System.out.println(Math .floor(1.2));
  //返回大于目标数的最小整数
  System.out.println(Math.ceil(1.2));
  //四舍五入取整
  System.out.println(Math.round(2.3));
  //计算平方根
  System.out.println(Math.sqrt(2.3));
  //计算立方根
  System.out.println(Math.cbrt(9));
  //计算绝对值
  System.out.println(Math.abs(-4));
  //返回一个伪随机数
  System.out.println(Math.random());
   }

 

 

Random类:专门用于生成一个伪随机数,它有两个构造器:一个构造器使用默认的种子,另一个构造器需要程序员显式传入一个long型整数的种子。

public static void main(String[] args) {
  Random random=new Random();
  System.out.println(random.nextBoolean());//生成布尔型的伪随机数
  byte[] buffer=new byte[16];
  random.nextBytes(buffer);//生成16个伪随机数的数组
  System.out.println(Arrays.toString(buffer));
  System.out.println(random.nextDouble());//生成0.0到1.0之间的伪随机double数
  System.out.println(random.nextInt(20));//生成0~20之间的伪随机数
 }
Random使用48位的种子,如果这个类的两个实例是用同一个种子创建,对它们以同样的顺序调用方法,则它们会产生相同的数字序列。也就是说,Random产生的数字并不是真正随机的,而是一种伪随机数。
为了避免这种情况,推荐使用当前时间作为Random对象的种子:Random r=new Random(System.cuyyentTimeMillis());

posted @ 2012-02-20 10:41  广东仔-学习ing  阅读(627)  评论(0编辑  收藏  举报