Java数字处理类--Math类--随机数

1. 生成随机数方法:

1.1 Math.random()方法

1.2 Random类

2. Math.random()方法

2.1 Math.random():产生0~1之间的double型随机数

java 复制代码
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之间的字符

java 复制代码
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()

java 复制代码
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
相关推荐
MATLAB代码顾问6 小时前
5大智能算法优化标准测试函数对比(Python实现)
开发语言·python
ting94520006 小时前
Tornado 全栈技术深度指南:从原理到实战
人工智能·python·架构·tornado
果汁华7 小时前
Browserbase Skills:让 Claude Agent 真正“看见“网页世界
人工智能·python
ZhengEnCi7 小时前
04-缩放点积注意力代码实现 💻
人工智能·python
DeepReinforce7 小时前
三、AI量化投资:使用akshare获取A股主板20260430所有的涨停股票
python·量化·akshare·龙头战法
段一凡-华北理工大学8 小时前
【高炉炼铁领域炉温监测、预警、调控智能体设计与应用】~系列文章08:多模态数据融合:让数据更聪明
人工智能·python·高炉炼铁·ai赋能·工业智能体·高炉炉温
万粉变现经纪人8 小时前
如何解决 pip install llama-cpp-python 报错 未安装 CMake/Ninja 或 CPU 不支持 AVX 问题
开发语言·python·开源·aigc·pip·ai写作·llama
清风明月一壶酒8 小时前
OpenClaw自动处理Word文档全流程
开发语言·c#·word
其实防守也摸鱼8 小时前
CTF密码学综合教学指南--第五章
开发语言·网络·笔记·python·安全·网络安全·密码学
callJJ9 小时前
Spring Data Redis 两种编程模型详解:同步 vs 响应式
java·spring boot·redis·python·spring