Math类与Random类
Math类
Math类中包含了一些数学计算的方法。
Math类的构造方法被私有化,不能实例化对象。
成员变量
Math类有两个静态成员变量用来表示自然底数和圆周率。
public static final double E : 自然底数
public static final double PI: 圆周率
可以使用Math.PI和Math.E来调用。
成员方法
public static double cos(double a) 返回角的三角余弦。
public static double sin(double a) 返回角的三角正弦。
public static double tan(double a) 返回角的三角正切 。
public static int abs ( int a)取绝对值
public static double ceil ( double a)向上取整
public static double floor ( double a)向下取整
public static int max ( int a, int b)获取最大值
public static int min ( int a, int b)获取最小值
public static double pow ( double a, double b)获取a的b次幂
public static double random () 获取随机数 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。
public static int round ( float a)四舍五入
public static double sqrt ( double a)获取正平方根
public class MathDemo {
public static void main(String[] args) {
//Math类的成员方法使用
System.out.println(Math.PI);
System.out.println(Math.E);
System.out.println(Math.cos(Math.PI/2));//0
System.out.println(Math.sin(Math.PI/2));//1
System.out.println(Math.ceil(3.14));//4
System.out.println(Math.floor(3.14));//3
System.out.println(Math.min(3.14,3)//3
System.out.println(Math.max(100, Math.max(10, 20)));//100
System.out.println(Math.pow(2,3));//2的立方
int num= (int) (Math.random()*100+1);//产生1-100的随机数
System.out.println(Math.round(3.56));//4.0
System.out.println(Math.sqrt(4));//2
//求立方根
System.out.println(Math.pow(9.0, 1.0 / 3.0));//3
System.out.println(0.9999999999999999999999999==1);//true
}
}
Random类
Random类用于产生随机数,如果使用相同的种子来产生随机数,则每次调用产生的随机数序列都相同。
构造方法
Random() 创建一个新的随机数生成器。
Random(long seed) 使用单个 long 种子创建一个新的随机数生成器。
成员方法
public double nextDouble() 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。
public float nextFloat() 返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。
public int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
public int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。
public long nextLong() 返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。
public class RandomDemo {
public static void main(String[] args) {
Random random = new Random();
int i1 = random.nextInt();//生成随机的整数再int范围
int i2 = random.nextInt(100);//生成的随机数 0--99
for (int i1 = 0; i1 < 100; i1++) {
int i = random.nextInt(100);//生成随机的整数再int范围
System.out.println(i);
System.out.println(i);
}
}
}
而如果使用种子创建随机数生成器,则每次调用出现的随机数序列一致。
public class RandomDemo2 {
public static void main(String[] args) {
//使用单个 long 种子创建一个新的随机数生成器。
Random random = new Random(100L);
for (int i = 0; i < 10; i++) {//每次运行都是5 0 4 8 1 6 6 8 3 3
int i1 = random.nextInt(10);
System.out.println(i1);
}
}
}