Math类
Math类有如下的常见方法:
1、static double abs(double a):返回double值的绝对值。
2、static double max(double a, double b):返回两个double值里面较大的一个。
3、static double random():返回一个随机的double值,该值 大于等于0.0且小于1.0.
示例:获取输入的四位数字的百位看是否同随机生成的数相同,相同则为幸运客户。
public class Demo {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int random = (int) (Math.random() * 10);
System.out.println("please input a four num");
int num = input.nextInt();
System.out.println(random);
int num2 = num / 100 % 10;
if (num2 == random) {
System.out.println("good luck");
} else {
System.out.println("thank you");
}
}
}
Random类
Random类用于生成随机数。每当需要以任意或非系统的方式生成数字时,可使用此类。Math类的random()方法底层就是使用Random类实现的。
Random类的构造方法有两种重载方式:
1、Random() :创建一个随机数生成器
2、Random(long seed):使用单个long种子创建一个新的随机数生成器
Random类中还定义了很多方法用于获取随机数,最常用的是nextInt()方法,它返回下一个伪随机数,返回值类型是整型。
返回下一个伪随机数的语法格式如下:
int nextInt();返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。
int nextInt(int n);返回下一个伪随机数,它是取自此随机数生成器序列的、在0(包括)和指定的值n(不包括n)之间均匀分布的int值。
示例:生成5个10以内的随机数
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
Random rand = new Random();
for (int i = 0; i < 5; i++) {
System.out.print(rand.nextInt(10));
}
}
}
注:如果用同样一个种子值来初始化两个Random对象,然后用每个对象调用相同的方法,那么得到的随机数也是相同的。
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
Random rand = new Random(100);
Random rand2 = new Random(100);
for (int i = 0; i < 5; i++) {
System.out.print(rand.nextInt(5));
System.out.println(rand2.nextInt(5));
}
}
}