1. 生成随机数方法:
1.1 Math.random()方法
1.2 Random类
2. Math.random()方法
2.1 Math.random():产生0~1之间的double型随机数
package MathInfo;
public class MathRandom {
//定义产生偶数的公式:int num = (int) num1 + (int) (Math.random() * (num2 - num1));
public static int GetEvenNum(double num1, double num2) {
int num = (int) num1 + (int) (Math.random() * (num2 - num1));
if (num % 2 == 0) {
return num;
} else {
return num + 1;
}
}
public static void main(String[] args) {
System.out.println("返回任意一个2~32之间的偶数:" + GetEvenNum(2, 32));
}
}
输出:
返回任意一个2~32之间的偶数:20
2.2 (char)(char1+Math.random()*(char2-char1+1)) 产生char1~char2之间的任意字符
(char)('a'+Math.random()*('z'-'a'=1)):产生a~z之间的字符
package MathInfo;
public class MathRandomChar {
public static char GetRandomChar(char char1, char char2) {
char randomChar = (char) (char1 + Math.random() * (char2 - char1));
return randomChar;
}
public static void main(String[] args) {
System.out.println("随机生成a~h间的任意字符:" + GetRandomChar('a', 'h'));
System.out.println("随机生成a~h间的任意字符:" + GetRandomChar('0', '5'));
}
}
输出:
随机生成a~h间的任意字符:a
随机生成a~h间的任意字符:4
3.Random类
Java中的java.util.Random类,通过实例化一个Random对象可以创建一个随机数生成器。本质都是通过时间作为随机数生成器的种子,所以运行太快了,也可能两次运行生成相同的随机数。
语法如下:
Random r = new Random(seedValue);
3.1 返回一个随机整数:
Random.nextInt()
3.2 返回一个大于0且小于n的随机整数:
Random.nextInt(int n)
3.3 返回一个随机长整型值:
Random.nextLong()
3.4 返回一个随机布尔型值:
Random.nextBoolean()
3.5 返回一个随机浮点型值:
Random.nextFloat()
3.6 返回一个随机双精度型值:
Random.nextDouble()
3.7 返回一个概率密度为高斯分布的双精度值:
Random.nextGaussian()
package MathInfo;
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
Random r = new Random();
System.out.println("随机产生一个整数:" + r.nextInt());
System.out.println("随机产生一个大于0小于10的整数:" + r.nextInt(10));
System.out.println("随机产生一个布尔型的值:" + r.nextBoolean());
System.out.println("随机产生一个双精度型的值:" + r.nextDouble());
System.out.println("随机产生一个浮点型的值:" + r.nextFloat());
System.out.println("随机产生一个概率密度为高斯分布的双精度的值:" + r.nextGaussian());
}
}
输出:
随机产生一个整数:921826330
随机产生一个大于0小于10的整数:8
随机产生一个布尔型的值:false
随机产生一个双精度型的值:0.11863251566741406
随机产生一个浮点型的值:0.035497546
随机产生一个概率密度为高斯分布的双精度的值:0.2351924571786877