IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> Java生成随机数(利用Random类和Math.random()方法) -> 正文阅读

[数据结构与算法]Java生成随机数(利用Random类和Math.random()方法)

Java生成随机数(利用Random类和Math.random()方法)

Random 类(java.util.Random)

常用构造方法:

  • Random():该构造方法使用一个和当前系统时间对应的数字作为种子数,然后使用这个种子数构造 Random 对象。
    - Random(long seed):使用单个 long 类型的参数创建一个新的随机数生成器。

Random 类提供的所有方法生成的随机数字都是均匀分布的,也就是说区间内部的数字生成的概率是均等的。

使用:

  1. boolean nextBoolean() 生成一个随机的 boolean 值,生成 true 和 false 的值概率相等
        Random r = new Random();
        System.out.println(r.nextBoolean());
    
  2. double nextDouble() 生成一个随机的 double 值,数值介于 [ 0 , 1.0 ) [0,1.0) [0,1.0),含 0 而不包含 1.0。
        Random r = new Random();
        System.out.println(r.nextDouble());
        // 0.40276562291149665
    
    如果要生成 [ 0 , n ) [0,n) [0,n)之间的随机双精度浮点数,则给r.nextDouble()乘以 n n n即可。
        Random r = new Random();
        System.out.println(r.nextDouble() * 10);
        // 4.399521217020129
    
  3. int nextlnt() 生成一个随机的 int 值,该值介于 int 的区间,也就是 ? 2 31 -2^{31} ?231~ 2 31 ? 1 2^{31}-1 231?1。如果
    需要生成指定区间的 int 值,则需要进行一定的数学变换。
        Random r = new Random();
        System.out.println(r.nextInt());
        // 1748484220
    
  4. int nextlnt(int n) 生成一个随机的 int 值,该值介于 [0,n),包含 0 而不包含 n。
        Random r = new Random();
        System.out.println(r.nextInt(2));
    
  5. void setSeed(long seed) 重新设置 Random 对象中的种子数。设置完种子数以后的 Random 对象和相同种子数使用 new 关键字创建出的 Random 对象相同.
  6. long nextLong() 返回一个随机长整型数字

Math 类的 random()

Math 类的 random() 方法没有参数,它默认会返回大于等于 0.0、小于 1.0 的 double 类型随机数,即 0<=随机数<1.0。对 random() 方法返回的数字稍加处理,即可实现产生任意范围随机数的功能。

下面使用 random() 方法实现随机生成一个 -100~100 偶数的功能。具体代码如下:

	public class Main {
	    public static void main(String[] args) {
	        int min = -100;
	        int max = 100;
	        int s = min + (int)(Math.random() * (max - min));
	        System.out.println(s);
	    }
	}

由于 m+(int)(Math.random()*n) 语句可以获取 m m m~ m + n m+n m+n 的随机数,所以 -100+(int)(Math. random()*(100-(-100)) 表达式可以求出 -100~100 的随机数。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-05-13 11:54:55  更:2022-05-13 11:56:38 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:38:11-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码