Math.random()方法

在Math类中存在一个random()方法,用于产生随机数字。这个方法默认生成大于等于0.0且小于1.0的double型随机数,即0<=Math.random()<1.0。虽然只能产生0~1的随机数,但略加修饰即可产生任意范围的随机数,如:
(int)(Math.random()n)返回大于等于0且小于n的随机数;
m+(int)(Math.random()
n)返回大于等于m且小于m+n的随机数;
如:
image.png
下面是用该方法做的一个猜字小游戏实例:
image.png
image.png
运行结果:
image.png
由于一个字母对应一个数字,因此把随机数强制转换成char型就可以随机生成字符了。
如:(char)(’a’+Math.random()(’z’-‘a’+1);可以随机生成字符’a’~’z’;
(char)(char1+Math.random()
(char2-char1+1);可以随机生成自定义范围内的字符;
注意:参数加1的原因是如果参数是’z’-‘a’,由于随机数上界不包括’z’-‘a’,所以不会生成’z’-‘a’的,因此要加上1。
image.png

Random类

除了Math类提供的random()方法外,Java还提供了一种可以获取随机数的方式,那就是java.util.Random类,通过实例化一个Random对象可以创建一个随机数生成器。
创建对象:Random s1=new Random();
Random类对象提供获取各种数据类型随机数的方法,这里介绍几种常用的:
public int nextInt():返回一个随机整数;
public int nextInt(int n):返回一个大于等于0且小于n( [0,n) )的随机整数;
public long nextLong():返回一个随机长整型值;
public boolean nextBoolean():返回一个随机布尔型值;
public float nextFloat():返回一个随机双精度型值;
public double nextDouble():返回一个随机双精度型值;
public double nextGaussian():返回一个概率密度为高斯分布的双精度值;
image.png
下面是用Random类模拟微信抢红包的一个实例:
image.png
运行结果:
image.png