当前位置: 首页 > news >正文

Java 学习35:Random 类

一、什么是 Random 类 

Random 类是 Java 中用于生成伪随机数的类。它位于 java.util 包中,提供了丰富的随机数生成方法,可以产生整数、浮点数和其他类型的随机数。不同于真正的随机数,Random 生成的数是伪随机的,因为它们是通过特定算法计算的。

二、Random 类的构造方法

Random 类有如下两个构造方法:

Random():默认使用前系统时间的毫秒数作为种子值,创建一个随机数生成器。

Random(long seed):使用参数 seed 作为种子值,创建一个随机数生成器。

创建 Random 对象时,可以指定一个种子值(seed),这个种子值会影响随机数生成序列的起始点。如果不指定种子值,Java 会使用当前时间的毫秒数作为默认种子。

三、Random 类的方法

Random 类提供了丰富的方法,用于生成各种类型的随机数。以下是一些常用方法:

方法说明
int nextlnt()生成一个随机的整数,数值介于 int 的区间,也就是 -2^31~2^31-1
int nextlnt(int n)生成一个随机的整数,数值介于 [0,n),包含 0 而不包含 n
long nextLong()生成一个随机的长整数
float nextFloat()生成一个随机的浮点数,数值介于 [0,1.0),含 0 而不包含 1.0
double nextDouble()

生成一个随机的双精度浮点数,数值介于 [0,1.0),含 0 而不包含 1.0

boolean nextBoolean()

生成一个随机的布尔值

四、Random 类的使用

例1:用 Random 类生成随机数。

import java.util.Random;public class RandomExample {public static void main(String[] args) {// 创建一个 Random 对象Random random = new Random();// 生成一个随机整数int randomInt = random.nextInt();System.out.println("随机整数: " + randomInt);// 生成一个 0 到 9 之间的随机整数int randomIntInRange = random.nextInt(10);System.out.println("0 到 9 之间的随机整数: " + randomIntInRange);// 生成一个随机双精度浮点数double randomDouble = random.nextDouble();System.out.println("随机双精度浮点数: " + randomDouble);}
}

例2:用 Random 类生成一个在 [min, max] 范围内的随机整数。

import java.util.Random;public class RandomExample {public static void main(String[] args) {// 创建一个 Random 对象Random random = new Random();// 指定随机数区间int min = 10;int max = 20;// 生成一个 10 ~ 20 之间的随机整数int randomNumber = random.nextInt(max - min + 1) + min;System.out.println("10 ~ 20 之间的随机整数: " + randomNumber);}
}

五、Random类的随机原理

Random 类的随机原理基于伪随机数生成器算法。

伪随机数生成器算法的核心思想是从一个初始种子值(seed)开始,然后通过一系列数学运算,如位运算、模运算等,生成下一个随机数。这个过程是可重复的,因此相同的种子将产生相同的随机数序列。

这意味着,如果您希望在不同的时间点或不同的应用中获得相同的随机数序列,只需使用相同的种子。因此,种子的选择非常关键,特别是在需要可重复性的情况下,如模拟和测试。

如果您不提供种子,Random 类将使用当前时间作为默认种子。这意味着每次运行程序时,都会产生不同的随机数序列。这通常足够满足一般的需求。但在某些情况下,您可能需要指定自己的种子以获得可重复的随机性。

http://www.dtcms.com/a/562371.html

相关文章:

  • 如何找外贸网站建设公司医院网站建设模板下载
  • 数据结构---平衡二叉树的实现
  • 网站维护描述wordpress虚拟币插件
  • 哈什么网一个网站做ppt搭建网站的空间哪里买
  • 做网站美工需要会什么软件怎么看一个网站什么程序做的
  • 局域网内部如何做网站中企动力大连公司咋样
  • 网站建设制作做网站优化推广公司net网站建设教程
  • [yolov11改进系列]基于yolov11使用fasternet_t0替换backbone用于轻量化网络的python源码+训练源码
  • 【具身智能】ChatVLA 系列:让 VLA 同时具备「多模态理解对话」与「动作执行」能力
  • 手机网站源码东莞常平房价2023最新楼盘消息
  • 网站产品的详情页怎么做wordpress密码原理
  • 制作自己的网站需要什么软件好软件开发有哪些岗位
  • 自己怎么做新闻开头视频网站自己建设网站的费用
  • 【代码审计】OFCMS-V1.1.2 三处安全问题分析
  • 外贸网站如何建站wordpress检查全站链接
  • Java基础——常用API5
  • 网站开发的进度安排电子商务网站开发目的和意义
  • 网站建设和赚钱方法网站后台编辑框无法显示
  • 什么网站可以找人做系统网站建设工作描述
  • 【大模型实战笔记 5】基于Streamlit的多模态AI聊天机器人应用开发实战
  • 彩票网站开发需要多少钱如何做网站免费教程
  • 深圳网站建设企业儿童教育自适应网站模板
  • 网站建设公司织梦模板下载陵水网站建设
  • 中山网站建设哪家好济宁网站建设联系方式
  • 房产采集网站源代码北京网站建设方案外包
  • 中山网站制作方案如何制作一个微信刷题小程序
  • 网站首页改版费用网站的建设及维护
  • 学做花蛤的网站wordpress如何控制内容图片大小
  • 建设网站的傻瓜图文指南注重网站内容维护
  • 如何构造私有的大模型微调数据集