- 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
(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
-
Java中的java.util.Random类,通过实例化一个Random对象可以创建一个随机数生成器。本质都是通过时间作为随机数生成器的种子,所以运行太快了,也可能两次运行生成相同的随机数。
语法如下:
- 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