JAVA:Random详解

embedded/2024/9/25 21:19:06/

Java中的java.util.Random类用于生成伪随机数。它提供了多种方法来生成不同类型的随机数,包括整数、浮点数和布尔值。以下是对Random类及其主要方法的详细介绍

一、生成随机数 

创建一个Random对象,可以使用以下两种方式:

  • 无参构造函数:使用默认的种子(当前时间的毫秒数)

    • java">Random random = new Random();
  • 带参构造函数:使用指定的种子,便于生成可重复的随机数序列

    • java">Random random = new Random(42);

无参的构造函数非常好理解,即根据当前时间毫秒值随机生成,那么有参是什么意思呢?有参数即意味着可以生成重复序列的随机数,即如果参数一样,那么根据参数创建的两个对象所生产的随机数:第一组为1,5,7,第二组必然也为1,5,7 

二、主要方法 

 在上述创建完Random对象后,我们即可使用Random中的方法来创建伪随机数

2.1 int nextInt()

  • 返回一个随机的整数,范围是所有可能的int值。
  • java">int randomValue = random.nextInt();
  • 最小值:Integer.MIN_VALUE,即-2^31(-2147483648)
  • 最大值:Integer.MAX_VALUE,即2^31-1(2147483647)

2.2  int nextInt(int bound)

  • 返回一个0(包括)到bound(不包括)之间的随机整数。用法示例:
  • java">int randomValue = random.nextInt(10);

2.3 随机浮点数生成 double nextDouble()

  • 返回一个0.0(包括)到1.0(不包括)之间的随机浮点数。
  • java">double randomValue = random.nextDouble();

2.4 float nextFloat()

  • 返回一个0.0(包括)到1.0(不包括)之间的随机浮点数。
  • java">float randomValue = random.nextFloat();

2.5 boolean nextBoolean()

  • 返回一个随机的布尔值。
  • java">boolean randomValue = random.nextBoolean();

2.6 随机长整型生成long nextLong()

  • 返回一个随机的长整型值。
  • java">long randomValue = random.nextLong();

三、综合示例 

 

java">import java.util.Random;
import java.util.Arrays;public class RandomExample {public static void main(String[] args) {Random random = new Random();// 生成一个随机整数int randomInt = random.nextInt();System.out.println("Random Integer: " + randomInt);// 生成一个0到9之间的随机整数int randomIntBounded = random.nextInt(10);System.out.println("Random Integer (0-9): " + randomIntBounded);// 生成一个随机浮点数double randomDouble = random.nextDouble();System.out.println("Random Double: " + randomDouble);// 生成一个随机布尔值boolean randomBoolean = random.nextBoolean();System.out.println("Random Boolean: " + randomBoolean);// 生成随机字节数组byte[] randomBytes = new byte[5];random.nextBytes(randomBytes);System.out.println("Random Bytes: " + Arrays.toString(randomBytes));// 生成一个随机长整型值long randomLong = random.nextLong();System.out.println("Random Long: " + randomLong);// 生成一个高斯分布的随机数double randomGaussian = random.nextGaussian();System.out.println("Random Gaussian: " + randomGaussian);}
}

 四、如何随机生成1-10中五个不重复的随机数?

 方法1:

java">@Test
void threadtest4() throws ExecutionException, InterruptedException {//生成一个数组int[] arr = new int[5];int count=0;Random random = new Random();while (count<5){Boolean isBreak=true;//生成的随机数int i = random.nextInt(5) + 1;//判断是否重复for(int j=0; j<arr.length; j++){if(arr[j]==i){isBreak=false;}}//不重复就进入数组中if(isBreak) {arr[count] = i;count++;}}Arrays.stream(arr).forEach(e-> System.out.println(e));
}

 其结果:


http://www.ppmy.cn/embedded/44031.html

相关文章

基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 反向传播网络&#xff08;BP&#xff0c;多层感知器MLP&#xff09; 4.2 径向基函数网络&#xff08;RBF&#xff09; 4.3 卷积神经网络&#xff08;CNN&#xff09; 4.4 长短期记忆网…

【Daily Code】leetcode2951. 找出峰值

Problem: 2951. 找出峰值 Code class Solution { public:vector<int> findPeaks(vector<int>& mountain) {int n mountain.size();vector<int> res;for(int i 1; i < n - 1; i ) {if(mountain[i] > mountain[i - 1] && mountain[i] >…

C++进程间通信 匿名管道和命名管道

C进程间通信 匿名管道和命名管道 1. 匿名管道匿名管道概述匿名管道代码示例代码解释运行结果 2. 命名管道命名管道概述命名管道代码示例写入数据的程序&#xff08;writer.cpp&#xff09;读取数据的程序&#xff08;reader.cpp&#xff09; 代码解释运行步骤运行结果 匿名管道…

markdown语法保存

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题&#xff0c;有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

手机版AI写作软件哪个好用?5款AI写作软件分享

在这个快节凑的时代&#xff0c;人们对于高效、便捷的创作方式很是追求。尤其是在人工智能技术发展迅速的今天&#xff0c;AI写作软件的出现&#xff0c;让很多自媒体创作者都会想到在手机上面进内容创作&#xff0c;这样不仅能提高工作效率&#xff0c;而且工作的自由度会更高…

CSP垦田计划

第一次的代码&#xff0c;直接暴力&#xff0c;因为结果的上限就是最大值&#xff0c;下限是k&#xff0c;直接从最大值遍历到k找到答案&#xff1a; #include<bits/stdc.h> using namespace std; const int N 1e510; const int mod 1e97; typedef long long ll; int …

nginx的常用配置与命令相关硬核干货

今天小晨跟大家分享Nginx常用配置与命令相关的硬核干货&#xff0c;可以说运维工作中基本都会用到这些&#xff0c;掌握它&#xff0c;你可以不用求人&#xff01; Nginx特点 高并发、高性能&#xff1b; 模块化架构使得它的扩展性非常好&#xff1b; 异步非阻塞的事件驱动模…

手摸手教你uniapp原生插件开发

行有余力,心无恐惧 这篇技术文章写了得有两三个礼拜,虽然最近各种事情,工作上的生活上的,但是感觉还是有很多时间被浪费.还记得几年前曾经有一段时间7点多起床运动,然后工作学习,看书提升认知.现在我都要佩服那会儿的自己.如果想回到那种状态,我觉得需要有三个重要的条件. 其…