软件中经常需要产生随机数。比如游戏中常用随机数代表投骰子或者洗牌,抽奖经常用随机数模拟抽奖概率。在 Java 中,有一个 Random 类专门用来模拟随机数。接下来,就让小编带你了解一下这个类。
生成整型的随机数
使用 Random 类的 nextInt()
方法,可以生成一个范围为整个 int 取值区间的 int 类型随机数。
nextInt()
方法可以传入一个 int 类型的参数,传参情况下生成的随机数范围是从 0 到该参数的范围。
生成浮点型的随机数
使用 Random 类的 nextFloat()
/nextDouble()
方法,可以生成一个范围为0到1.0范围内的浮点型随机数(两种方法产生的随机数精度不同)。
Random的其他方法
使用 Random 类的 nextGaussian()
方法,可以生成一个伪高斯分布的均值为0.0,标准差为1.0从此随机数生成器的序列的 double 值。
import java.util.Random;
public class RandomNumbers{
public static void main(String[] args) {
int num1 = new Random().nextInt();//使用Random的nextInt方法生成int类型随机数,范围为整个int的取值区间
System.out.println(num1);
int num2=new Random().nextInt(10);//使用Random的nextInt方法生成int类型随机数,范围为0到输入参数的取值区间
System.out.println(num2);
num2 = new Random().nextInt(10)+10;//通过加减法,修改最终生成随机数的生成范围
float num3 =new Random().nextFloat();
//使用Random的nextFloat方法生成float类型随机数,范围为0d到1.0区间的浮点随机数
System.out.println(num3);
double num4 =new Random().nextDouble();
//使用Random的nextDouble方法生成double类型随机数,范围为0d到1.0区间的浮点随机数
System.out.println(num4);
double num5 = new Random().nextGaussian();
//生成一个伪高斯分布的均值为0.0,标准差为1.0从此随机数生成器的序列的double值。
System.out.println(num5);
}
}
更多技巧
可以通过加减乘除,来扩大缩小,或者移动区间的范围。
在生成的随机数后面加10,可以让所有生成的随机数都加10,从而使随机数生成的区间范围向右移动。
在生成的随机数后面*10,可以让所有生成的随机数都扩大10倍,从而使随机数生成的区间范围扩大10倍。
小结
以上关于 Java 的 Random 的类的介绍就到这里,更多Java技术学习,请关注菜鸟自学java教程。