Java获取随机数

在Java中获取随机数通常会使用java.util.Random类或者Math.random()方法

1.java.util.Random

java.util.Random类用于生成伪随机数。

        // 使用无参构造方法创建Random对象
        Random rand = new Random();

        // 生成一个[0, 100)范围内的随机整数
        int randomInt = rand.nextInt(100);
        System.out.println("[0, 100)范围内的随机整数: " + randomInt);

        // 生成一个[min, max]范围内的随机整数
        int min = 1;
        int max = 10;
        int randomIntRange = min + rand.nextInt(max - min + 1);
        System.out.println("随机整数: " + randomIntRange);

        // 生成一个随机的double值,范围在[0.0, 1.0)
        double randomDouble = rand.nextDouble();
        System.out.println("随机的double值: " + randomDouble);

        // 生成一个[min, max]范围内的随机double值
        double minDouble = 1.0;
        double maxDouble = 10.0;
        double randomDoubleInRange = minDouble + (maxDouble - minDouble) * rand.nextDouble();
        System.out.println("随机double值: " + randomDoubleInRange);

        //生成一个[min, max]范围内的随机byte值
        //因为byte类型的范围是-128到127,需要对Random类生成的int类型随机数进行类型转换和范围调整,可以看到获取随机数步骤其实和double差不多
        byte randomByte = (byte) (Byte.MIN_VALUE + rand.nextInt(Byte.MAX_VALUE - Byte.MIN_VALUE + 1));
        System.out.println("范围内的随机byte值: " + randomByte);

        // 生成[min, max)范围内的float值
        float minFloat = 1.0f;
        float maxFloat = 10.0f;
        float randomFloatInRange = minFloat + (maxFloat - minFloat) * rand.nextFloat();
        System.out.println("范围内的float值: " + randomFloatInRange);

        //随机生成boolean值
        //随机生成0或1(不包括2),再判断是否=0
        boolean randomBoolean = rand.nextInt(2) == 0; // 0为false,1为true
        System.out.println("随机生成boolean值: " + randomBoolean);

        // Java 7及以上版本提供了这个方法
        boolean randomBooleanNext = rand.nextBoolean();
        System.out.println("随机生成boolean值: " + randomBooleanNext);

        // 可以是任何long值
        long randomLong = rand.nextLong();

        // 生成[min, max]范围内的long值
        long minLong = 1000L;
        long maxLong = 999999999999L;
        long range = (maxLong - minLong) + 1;
        long randomLongInRange = minLong + (long) (rand.nextDouble() * range);
        System.out.println("范围内的long值: " + randomLongInRange);

2.Math.random()方法

Math.random()方法用于生成一个大于等于0.0且小于1.0的随机double值。这个方法不接受任何参数,并且每次调用时都会生成一个新的随机数。

        // 生成一个[0.0, 1.0)范围内的随机double值  
        double randomDouble = Math.random();
        System.out.println("范围内的随机double值: " + randomDouble);

        // 生成一个[min, max]范围内的随机double值  
        double minDouble = 1.0;
        double maxDouble = 10.0;
        double randomDoubleInRange = minDouble + (maxDouble - minDouble) * Math.random();
        System.out.println("范围内的随机double值: " + randomDoubleInRange);

        // Math.random()不能直接用于生成随机整数,但可以通过类型转换和取整来实现  
        // 生成一个[0, max)范围内的随机整数(包括0,不包括max)  
        int maxInt = 100;
        int randomInt = (int) (Math.random() * maxInt);
        System.out.println("范围内的随机整数: " + randomInt);

        // 生成一个[min, max]范围内的随机整数(包括min和max)  
        int minInt = 1;
        int randomIntInRange = minInt + (int) (Math.random() * (maxInt - minInt + 1));
        System.out.println("范围内的随机整数: " + randomIntInRange);

近日总结:继上次写的文字好像就是在鞭尸,这次变成了好像进入了无限的死循环。

我想,有了这段经历,我的毕业论文一定不会写的很差,毕竟有大佬指导呜呜呜。

经此一役,我的文字水平得到了极大的提升。

纵观以往,我似乎是初中的时候文字水平最高,再然后是高中,再然后是小学,再然后就是大学了。

试问大学教会了我什么,教会了我活到老,学到老,自律自律,每天早八晚11的学习生活,除去这些,其他的关于文学方面的东西寡淡的可怕。

虽然在学校图书馆读过几本书,也有很深的感悟,但这些远远不够。

以前的我觉得每天泡在图书馆里就是人生一大享受,在之后乃至现在的我都觉得每天泡在工作室里才是最大的享受,最纯学的那一年,我和小组其他成员商议着晚上在工作室里睡觉,一睁眼就可以学习,简直太美了!

但实习阶段的我,睡觉,睡觉,睡觉。

我爱睡觉,我爱摆烂。

这不是好事,对,我要崛起!

嘻嘻,中秋去上海玩喽~~~~~~~~~~~~~~~~~啦啦啦啦啦啦啦啦啦~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/876161.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux使用命令行编译qt.cpp

步骤&#xff1a; mkdir qttestcd qttestvim hello.cpp #include <QApplication> #include <QDialog> #include <QLabel> int main(int argc,char* argv[]) {QApplication a(argc,argv);QLabel label("aaa");label.resize(100,100);label.show()…

vulnhub(6):Tr0ll(隐藏目录、hydra密码爆破、内核漏洞提权)

端口 nmap主机发现 nmap -sn 192.168.178.0/24 ​ Nmap scan report for 192.168.178.33 Host is up (0.00020s latency). ​ 33是新出现的机器&#xff0c;他就是靶机 nmap端口扫描 nmap -Pn 192.168.178.33 -p- --min-rate 10000 -oA nmap/scan 扫描开放端口保存到 nmap/sca…

【FATFS】FATFS简介及下载

1、FATFS简介 FatFs 是一个针对嵌入式系统开发的通用文件系统模块&#xff0c;主要用于支持 FAT 文件系统。它最初由 ChaN 开发&#xff0c;并被广泛应用于嵌入式设备上。FatFs 以其轻量级、可配置和设备无关的特性著称&#xff0c;支持 FAT12、FAT16、FAT32 以及 exFAT 文件系…

【iOS】单例模式

目录 前言单例模式认识单例模式单例模式的特点及使用情景单例模式的使用单例模式的实现步骤&#xff1a;完整代码 总结 前言 在进行大项目编写之前&#xff0c;开始对前面比较重要的知识进行回顾和重新学习&#xff0c;单例模式在软件开发设计中是比较重要的&#xff0c;尤其是…

EFI引导模式下配置Windows和Linux双系统共存

这几天在VirtualBox虚机里玩Modular MAX下的LLama3大模型&#xff0c;实在受不了这执行速度&#xff0c;于是下决心把Ubuntu系统安装在硬盘上跟Windows11做双系统共存。之前在传统BIOS引导模式下做过不少次双系统引导&#xff0c;EFI模式下第一次做&#xff0c;加之windows系统…

计算机毕业设计 大学志愿填报系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

大数据-129 - Flink CEP 详解 Complex Event Processing - 复杂事件处理

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

91、K8s之ingress上集

一、Ingress service模式&#xff1a; loadbalance NodePort&#xff1a;每个节点都会有一个指定的端口 30000-32767 内网 clusterip&#xff1a;默认模式&#xff0c;只能pod内部访问 externalName&#xff1a;需要dns提供域名 1.1、对外提供服务的ingress service&…

线性规划------ + 案例 + Python源码求解(见文中)

目录 一、代数模型&#xff08;Algebraic Models&#xff09;详解1.1什么是代数模型&#xff1f;1.2代数模型的基本形式1.3 安装所需要的Python包--运行下述案例1.4代数模型的应用案例案例 1&#xff1a;市场供需平衡模型Python求解代码Python求解结果如下图&#xff1a; 案例 …

【快速解决】搭建VUE+VScode+elementUI开发环境,Vue环境配置

目录 1、通过这个之间下载node.js&#xff08;全选next即可&#xff09; 2、winr检验是否安装成功&#xff08;运行下面两个命令即可&#xff09; 3、将下面我给你的这个压缩包解压&#xff0c;然后放到空间足够的磁盘里面 4、【重点】设置环境变量 第一个变量路径里面长这…

ubuntu中QT+opencv在QLable上显示摄像头

ubuntu中QTopencv在QLable上显示摄像头 饭前的一篇文章吧&#xff0c;写完吃饭走 图像在机器视觉中的重要性是不可忽视的。机器视觉是指计算机利用图像处理技术进行图像识别、分析和理解的科学与技术领域。图像是机器视觉的输入数据&#xff0c;通过分析和处理图像&#xff0…

HTML中的文字与分区标记

1.font标记&#xff1a;用来设置文字的字体&#xff0c;大小&#xff0c;颜色&#xff0c;等属性 <!--font:font标记用来设置字体大小颜色属性size:设置字号&#xff0c;默认是3号&#xff0c;1表示4号&#xff0c;-1表示2号&#xff0c;取值范围是[1,7]或[-7,-1]color:设置…

Docker零基础入门

参考课程https://www.bilibili.com/video/BV1VC4y177re/?vd_source=b15169a302bee35f484245aecc69d4dd 参考书籍Docker 实践 - 面向 AI 开发人员的 Docker 实践 (dockerpractice.readthedocs.io) 1. 什么是Docker 1.1. Docker起源 随着计算机的发展,计算机上已经可以运行多…

C++ | Leetcode C++题解之第406题根据身高重建队列

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort(people.begin(), people.end(), [](const vector<int>& u, const vector<int>& v) …

第108集《大佛顶首楞严经》

请打开讲义241面。我们讲到嗅报&#xff0c;鼻根当中嗅的功能。 本根发相 发明二相&#xff1a;一者通闻&#xff0c;被诸恶气&#xff0c;熏极心扰。二者塞闻&#xff0c;气掩不通&#xff0c;闷绝于地。 以鼻根造业到无间地狱以后&#xff0c;他有二种受苦的相状&#xf…

[C++] 剖析多态的原理及实现

文章目录 多态的概念及定义编译时多态&#xff08;静态多态&#xff09;运行时多态&#xff08;动态多态&#xff09;动态多态的原理示例&#xff1a;运行时多态 两种多态的区别 多态的实现基本条件虚函数虚函数的重写与覆盖虚函数重写的其他问题协变析构函数的重写 C11 中的 o…

引领智能家居新风尚,WTN6040F门铃解决方案——让家的呼唤更动听

在追求高效与便捷的智能家居时代&#xff0c;每一个细节都承载着我们对美好生活的向往。WTN6040F&#xff0c;作为一款专为现代家庭设计的低成本、高性能门铃解决方案&#xff0c;正以其独特的魅力&#xff0c;悄然改变着我们的居家生活体验。 芯片功能特点&#xff1a; 1.2.4…

直流电源纹波怎么测量?示波器的探头和带宽如何选择?

对于电源工程师来说&#xff0c;精确测量电源纹波是一项基本技能。本文将详细介绍直流电源纹波测试时的注意事项&#xff0c;包括示波器探头的选择、带宽设置、时基选择&#xff0c;确保精准测量直流电源纹波。 一、选择合适的示波器带宽 为了避免电路的高频噪声影响电源纹波的…

基于树莓派ubuntu20.04的ros-noetic小车

目录 一、小车的架构 1.1 总体的概述 1.2 驱动系统 1.3 控制系统 二、驱动系统开发 2.1 PC端Ubuntu20.04安装 2.2 树莓派Ubuntu20.04安装 2.3 PC端虚拟机设置静态IP 2.4 树莓派设置静态IP 2.5 树莓派启动ssh进行远程开发 2.5 arduino ide 开发环境搭建 2.5.1 PC…

C++: 二叉树进阶面试题

做每件事之前都心存诚意, 就会事半功倍. 目录 前言1. 根据二叉树创建字符串2. 二叉树的层序遍历Ⅰ3. 二叉树的层序遍历Ⅱ4. 二叉树的最近公共祖先5. 二叉搜索树与双向链表6. 根据一棵树的前序遍历与中序遍历构造二叉树7. 根据一棵树的中序遍历与后序遍历构造二叉树8. 二叉树的…