了解Java中的随机数生成函数用法
Java中的随机数生成函数主要包括两种,一种是Math类的静态函数,另一种是Random类的实例方法。两种方法各有优缺点,下面将分别介绍。
一、Math类的静态函数
Math类是Java中的一个数学工具类,其中包括了一些常用的数学函数,比如求绝对值、求幂、求正弦等等。在Math类中,提供了一个静态函数random(),可以生成一个[0,1)之间的伪随机数。下面是函数的定义:
public static double random()
该函数返回的是double类型的值,其范围是[0,1)。需要注意的是,该函数生成的是伪随机数,也就是说,算法只是根据一个定值进行计算,因此不是真正意义上的随机数。如果需要产生更为随机的数,就需要对这个伪随机数进行处理。
下面是一个生成10个[0,1)随机数的示例代码:
for(int i=0; i<10; i++){
double r = Math.random();
System.out.println(r);
}
二、Random类的实例方法
Random类是Java中专门提供随机数生成的类,在使用时需要创建一个Random的实例。Random类的实例方法包括了多个生成随机数的方法,下面是其中一些常用的方法:
1、nextInt()
该方法返回一个随机的整数,其范围是int类型的取值范围。因此可以使用该方法来生成任意范围内的整数。下面是函数的定义:
public int nextInt()
2、nextInt(int n)
该方法返回一个随机的整数,其范围是[0,n)之间的值。因此可以使用该方法来生成指定范围内的整数。下面是函数的定义:
public int nextInt(int n)
3、nextDouble()
该方法返回一个随机的double类型的数,其范围是[0,1)。与Math类的random()函数类似。下面是函数的定义:
public double nextDouble()
下面是一个示例代码,它生成10个[1,10]之间的整数:
Random r = new Random();
for(int i=0; i<10; i++){
int x = r.nextInt(10)+1;
System.out.println(x);
}
需要注意的是,Random类同样是生成伪随机数,因此它的生成效果也不是绝对随机,不过在日常应用中已经足够了。
总结
Java中提供了两种随机数生成函数,Math类的random()函数可以快速的生成[0,1)之间的随机数,而Random类则提供了丰富的随机数生成方法,更加灵活。应根据不同的需求选择不同的方法。需要注意的是,生成的随机数都是伪随机数,不是真正意义上的随机数,不应用于密码学等安全性要求比较高的场合。
