Java常用类04:Random类

解析Java中1000个常用类:Random类,你学会了吗? Random类位于java.util包中,是 Java 中生成伪随机数的主要工具。伪随机数(Pseudo-Random Number)并不是真正意义上的随机数,它们是通过某种算法从一个初始值(称为种子,seed)计算而来的数值序列。尽管这些数值看起来是随机的,但它们是确定的、可再现的。 阅读详情

Random类

Java中存在着两种Random函数:

一、java.lang.Math.Random;

调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是 [0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。例子如下:

package com.random;

public class Demo01 {
    public static void main(String[] args) {
        //结果是个double类型的值,区间为[0.0,1.0)
        System.out.println("Math.random()=" + Math.random());
        int num = (int) (Math.random()*3);
//        int num = (int) Math.random() *3;  //这个值永久为0,先强转后*3
        System.out.println("num="+ num);
    }
}

二、java.util.Random

下面是Random()的两种构造方法:

Random():创建一个新的随机数生成器。

Random(long seed):使用单个 long 种子创建一个新的随机数生成器。 你在创建一个Random对象的时候可以给定任意一个合法的种子数,种子数只是随机算法的起源数字, 和生成的随机数的区间没有任何关系。

如下面的Java代码:

【演示一】

在没带参数构造函数生成的Random对象的种子缺省是当前系统时间的毫秒数。 rand.nextInt(100)中的100是随机数的上限,产生的随机数为0-100的整数,不包括100。

package com.random;

import java.util.Random;

public class Demo02 {
    public static void main(String[] args) {
        Random rand = new Random();
        int i = rand.nextInt(100);
        System.out.println(i);
    }
}

【演示二】
对于种子相同的Random对象,生成的随机数序列是一样的。

package com.random;

import java.util.Random;

public class Demo03 {
    public static void main(String[] args) {

        Random rand = new Random(25);
//        System.out.println(rand.nextInt(100)); //必须加for循环 如果像演示一那样写  随机数不会变
        for (int i = 0; i < 10; i++) {
            System.out.println(rand.nextInt(100));
        }
    }
}

【方法摘要】

1.protected int next(int bits):生成下一个伪随机数。

2.boolean nextBoolean():返回下一个伪随机数,它是取自此随机数生成器序列的均匀 分布的 boolean值。

  1. void nextBytes(byte[] bytes):生成随机字节并将其置于用户提供的 byte 数组中。
  2. double nextDouble():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间 均匀分布的 double值。
  3. float nextFloat():返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分 布float值。
  4. double nextGaussian():返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正 态”)分布的double值,其平均值是0.0标准差是1.0。
  5. int nextInt():返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
  6. int nextInt(int n):返回一个伪随机数,它是取自此随机数生成器序列的、在(包括和指定值(不 包括)之间均匀分布的int值。
  7. long nextLong():返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。 10. void setSeed(long seed):使用单个 long 种子设置此随机数生成器的种子。

【例子】

1、生成[0,1.0)区间的小数:double d1 = r.nextDouble();

2、生成[0,5.0)区间的小数:double d2 = r.nextDouble() * 5;

3、生成[1,2.5)区间的小数:double d3 = r.nextDouble() * 1.5 + 1;

4、生成[0,10)区间的整数:int n2 = r.nextInt(10);

Math与Random类笔记 031108_【第11章:Java常用类库】_Math与Random类笔记 立即下载

相关推荐

Godot 2D游戏开发实战:用GDScript复刻10款经典小游戏(附完整源码)

本文是一份Godot 2D游戏开发实战指南,通过使用GDScript语言复刻10款经典小游戏,帮助开发者快速掌握引擎核心功能。内容涵盖从环境配置、GDScript基础到贪吃蛇、Flappy Bird、打砖块、俄罗斯方块等项目的核心逻辑与代码实现,并附有完整源码,旨在通过实践提升独立开发能力。

gold的博客 779

第4关:Random类

第4关:Random类 任务描述 本关任务:掌握Random类以及Random类的使用。 编程要求 comment: <> (“编程要求”部分介绍本关任务的具体要求,如实现步骤,规则等,最好能给出效果图) 请仔细阅读右侧代码,根据方法内的提示,在Begin - End区域内进行代码补充,具体任务如下: 设计一个密码的自动生成器:密码由大写字母/小写字母/数字组成,生成六位随机密码。 分别以1、2、3作为种子数创建Random对象,生成六位随机密码进行测试。 具体输出要求请看测试说明。 测试说明

陈陈不like的博客 7503

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇 文章目录Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇前言一、数据库的安装前准备,前提是没有安装过!!!二、仅安装数据库软件(数据库运行环境)三、添加数据库实例四、设置监听程序,让数据库可以通过网络访问五、为目标数据库设置网名总结 前言 如果需要安装包:联系我看到会给你链接,因为现在官网已经不提供10g,11g的安装包了,在网盘保存望悉知(回复不会很及时,下班看到会回复敬请谅解)。 提示:以下

zhx__的博客 5631

第十一章《Java实战常用类》第4节:Random类

在很多程序当中都要用到随机数。例如某个软件在登录时需要填写一个四位数的验证码,这个验证码就是一个典型的随机数。位于java.util包下的Random类是一个专门用于生成随机数的类,程序员使用这个类可以生成类型各异的随机数。

穆哥学堂--Java学习园地 709

浙政钉(专有钉钉)门户免登(超详细)

钉钉家族 介绍浙政钉门户免登之前,首先搞清楚几个软件的关系,软件分别是:钉钉,专有钉钉,浙政钉 钉钉 是阿里巴巴集团专为中小企业打造的沟通和协同的多端平台。 专有钉钉 原名 政务钉钉,有更开放的设计能力、集成能力、更结构化协同产品、更定制化开发平台。支持专有化部署,数据落本地,更安全、客户可对该产品持牌运营、结构化编排,协助构建本地应用中心、提供移动应用全面安全保障体系。 浙政钉 为规范浙政钉整体架构体系,按照统分结合原则,由省政府办公厅统一设计整体工作界面和系统框架,统筹指导全省统建应用建设,各单

一缕南风的博客 2万+

3分钟创建智能体

智能体简介会在首页以及名片页展示,需要简洁明了的介绍智能体用途✅优秀示例:最好用第三人称直接说明智能体用途~如:打造生动文案好帮手、专业解梦,探寻梦境奥秘等❌反面教材:简介并未介绍用途、语义含糊。如:今天写点啥、看看你做的梦等以上步骤完成后,点击发布,就能成功创建属于你自己的智能体啦~仅自己可访问(免审):发布后仅开发者本人账号可访问、预览、使用该智能体仅链接可访问:发布后任何人均可通过链接访问、预览、使用该智能体。

soso1968的博客 2085

4. Random类

• 功能:生成一个随机 int 值,范围在 Integer.MIN_VALUE 到 Integer.MAX_VALUE 之间。• 功能:生成一个随机 int 值,范围在 [0, bound) 之间(包含 0 ,不包含 bound )。• nextInt() 的范围是 Integer.MIN_VALUE 到 Integer.MAX_VALUE。• nextInt(int bound) 的范围是 [0, bound)。

qq_34994045的博客 586

Python爬虫实战:逆向工程与异步爬虫技术,高效抓取国家知识产权局专利数据

相比于传统的Selenium,Playwright由微软开发,支持多浏览器(Chromium, Firefox, WebKit),API更现代,执行速度更快,并且能轻松录制用户操作生成代码。通常,列表中的摘要信息是缩略的,我们需要进入每个专利的详情页获取完整信息(如主权要求、法律状态等)。我们的第一步是手动操作一遍搜索流程,并用Playwright的“录制”功能或开发者工具,找出真正返回专利数据的那一个或多个网络请求。以友好的、对人类行为模拟的方式爬取数据是基本的网络礼仪,也能有效避免你的IP被封锁。

2201_76125261的博客 2421

Random类

Random类

m0_64562382的博客 635

Hugging Face 最新开源 SmolVLA 小模型入门教程(一)

今天,我们介绍SmolVLA,这是一个紧凑型(450M)、开源的视觉-语言-动作模型,专为机器人设计,可在消费级硬件上运行。 仅在带有lerobot标签的开源社区共享数据集上进行预训练。 SmolVLA-450M在模拟环境(LIBERO、Meta-World)和真实世界任务(SO100、SO101)中,表现优于规模更大的VLA模型及强基线模型如ACT。 支持异步推理,响应速度提升30%,任务吞吐量提升2倍。

2506_90492529的博客 4079

网络无线AP信号走场测试软件(Ekahau 使用说明)

每次开启 Ekahau 软件需要重复此过程,才可以正常使用。 双击“Ekahau Pro activation.reg”,如下图所示; 点击“Yes”按钮 ,进行注册表合并; 点击“OK”按钮,确认; 运行“Ekahau Pro” 点击“Close”关闭提示; 点击“OK”,关闭提示; ...

Reyn_观极 6420

常用类 (四) ----- Random随机数类

小数处理——DecimalFormat /* * 数字的格式: * # 表示任意数字 * ,表示千分位 * . 表示小数点 * */ // 四舍五入保留4位小数 DecimalFormat df = new DecimalFormat("##,###.####"); String s = df.format(3.14159);// 3.1416

k909397116的博客 924

insightface scrfd人脸检测测试

pip install mmdet 自动安装mmcv win10上可以,服务器上没成功

jacke121的专栏 4023

Java基础:【Math 类与 Random 类】

摘要: 本文详解Java中Math类和随机数生成工具(Random、ThreadLocalRandom、SecureRandom)的核心用法。Math类提供静态数学方法(如三角函数、取整运算等),而随机数生成方案各有侧重:Random适合单线程,ThreadLocalRandom(推荐)优化多线程性能,SecureRandom保障密码学安全。文章对比了不同方案的线程安全性、性能及适用场景,并给出随机数生成、数组洗牌等实用代码示例,强调生产环境应避免使用Math.random()。

lzq617789的博客 894

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

03常用类04_Math,Random类

Math类的基本用法 /* * 测试math类 */ public class TestMath { public static void main(String[] args) { //取整相关操作 System.out.println(Math.ceil(3.2)); System.out.println(Math.floor(3.2)); ...

水手的博客 194

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

09_04. 【Java】Random类

一、随机数生成器概述 Java中的Random类主要用来生成随机数,Random类中实现的随机算法是伪随机(也称为有规则的随机)。在进行随机生成时,随机生成算法的起源数字称为种子数(seed),在种子数的基础上进行一定的变换,从而产生不同的随机数字。 种子数决定了生成数,相同种子数的Random对象,相同次数生成的随机数字是完全相同的。因此,在生成多个随机数时,需要特别注意特们的seed是否相同。 Java的Random类和Scanner类一样都封装在在java.util中,单独使用的情况非常少,通常搭配.

changchuanlai 292

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

JAVA笔记04 常用类

常用类 JAVA语言常用类有Math类、Scanner类、Random类、String类、Character类等。 1. Math 类 Math类是用于数学计算的一个工具类 例题: public class Sample { public static void main(String[] args) { System.out.println(Math.E); System.out.println(Math.PI); System.out.println(Math.ceil(

weixin_53334593的博客 145

java——API——Random类

Random类的概述 Random类用来生成随机数字。使用起来也是三个步骤: 导包import java.util.Random; 创建Random r = new Random(); // 小括号当中留空即可 使用获取一个随机的int数字(范围是int所有范围,有正负两种):int num = r.nextInt() import java.util....

小白龙白龙马的博客 291

Java中 Math类 和 Random 类 用法的详细介绍

Math。

weixin_64618449的博客 1224

Java常见的6大类使用方法

本文出处为:https://www.cnblogs.com/1693977889zz/archive/2017/07/03/7110035.html 本文目的完全是参考交流学习,一起学习java编程,以下是上述链接的全文内容,若有转载请标注原文的出处,即上面的链接。 本文主要介绍几种Java中常用类的应用。 一、System类 从API当中我们可以看出,public final class...

weixin_41796049的博客 6502

java学习04(常用类、集合)

java学习

weixin_73416102的博客 947

【Java】Scanner和Random类用法

Scanner类用法 import java.util.Scanner; // 1. 导包 /* Scanner类的功能:可以实现键盘输入数据,到程序当中。 引用类型的一般使用步骤: 1. 导包 import 包路径.类名称; 如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写。 只有java.lang包下的内容不需要导包,其他的包都需要import语句。 2. 创建 类...

欢迎关注【微信公众号】测试开发Guide,从功能测试进阶测试开发 713

java math类 random_JAVA API(三) Math类和Random类

1.Math类Math类是数学操作类,提供了一些用于进行数学计算的静态方法。Math类中有两个静态常量PI和E,分别代表数学常量π和e。列表中是Math类的一些常用方法:方法声明功能描述int abs(int a)计算a的绝对值double ceil(double a)向上取整,求大于参数的最小整数double floor(double a )向下取整,求小于参数的最大整数long round(...

weixin_33837516的博客 441

Java基础:常用类(四)

Java的类库(也称为Java API)非常庞大和丰富,它包含了大量用于处理各种常见编程任务的类和接口,包括字符串处理、基础数据类型包装类、数学计算、日期时间、正则表达式等。

文优 959

Java 基础之常用类

记录一下Jave中常用类的使用方法,这些常用类包括System、Scanner、String、StringBuffer、StringBuilder、Math、Random、Date、Calendar类。

QIFU的专栏 1418
上一篇: Java常用类03:Math类
下一篇: Java常用类05:日期时间类
maby_
博客等级 码龄19年 15粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值