Math.random()巧用

1.打开Java中的Math工具类查看random()方法

返回的是double类型,返回值是[0,1) 左包右不包的double数,但我们一般有要求的是[min,max]这样的值

2.随机字符

random()方法产生的随机数在0.0和1.0之间,乘以128后,其值在0.0和128.0之间,将它转换为char类型后,用if来判断是否在’A’ 和’Z’之间。

1
2
3
4
5
6
7
8
9
10
public class IsUpper{
public static void main(String [] args){
char ch;
ch = ( char ) ( Math.random() * 128);
if ( ch >= 'A' && ch <= 'Z'){
System.out.println("Yes!");}
else{
System.out.println("No!");}
}
}

1.随机生成a~z之间的字符 Math.random()*(max -min+1)+min

1
2
(char)(Math.random()*('z'-'a'+1)+'a');
1

2.随机生成cha1~cha2的字符

1
(char)(Math.random()*(cha2-cha1+1)+cha1);

3.随机数

产生一个[0,1)之间的随机数。

1
Math.random():

返回指定范围的随机数[min-max]之间的公式:

1
Math.random()*(max-min+1)+min

4.Random类生成随机数

除了Math类的Random()方法可以获取随机数之外,还可以Java.util.Random类,可以通过实例化一个Random对象创建一个随机数生成器。

1.语法:

​ Random ran=new Random();
​ Random类的实例对象以这种形式实例化对象时,Java编译器以系统当前时间作为随机数生成器的种子,因为每时每刻的时间都不可能相同,所以产生的随机数也不同。如果运行速度太快,也会产生两次运行结果相同的随机数。

2.可以在实例化Random类对象时,自定义随机数生成器的种子。

​ 语法:

​ Random ran=new Random(seedValue);

​ Random类中还提供各种类型随机数的方法:
​ nextInt():返回一个随机整数(int)
​ nextInt(int n):返回大于等于0、小于n的随机整数(int)
​ nextLong():返回一个随机长整型值(long)
​ nextBoolean():返回一个随机布尔型值(boolean)
​ nextFloat():返回一个随机浮点型值(float)
​ nextDouble():返回一个随机双精度型值(double)
​ nextGaussian():概率密度为高斯分布的双精度值(double)

​ 例:

1
2
3
4
5
6
import java.util.Random;
public class Demo{
public static void main(String[] args){
Random ran=new Random();
System.out.println("产生一个随机整数:"+ran.nextlnt());
}