Math.random、Random随机数的生成

Math.random、Random随机数的生成

  • Math.random() 方法
    • 案例:生成随机整数
    • 案例:生成随机字符
  • Random()类
    • Random生产区间随机数的技巧:减加法
    • 案例:猜测随机一个幸运号码 1 - 100
    • 案例:生成随机字符

Math.random() 方法

Math.random() 方法获取的数据区间为 [0.0 , 1.0) double 型随机数,即 0.0 <= Math.random() < 1.0;

案例:生成随机整数

使用方法:(数据类型)(最小值 + Math.random() ) * (最大值 - 最小值 + 1);// 随机数范围包含最小值和最大值

public class MathRandom {public static void main(String[] args) {// 生成 -99 到 99 的整数System.out.println("生成任意一个 -99 ~ 99 的整数:\t" + GetRandomNum(-99 , 99));}public static int GetRandomNum(int num1, int num2){ // 生成 -99  99之间的随机数 int res = (int)(num1 + Math.random() * (num2 - num1 + 1));return res;}
}

在这里插入图片描述

案例:生成随机字符

public class MathRandom {public static void main(String[] args) {// 获取a~z之间的随机字符System.out.println("任意一个小写字符: " + GetRandomChar('a', 'z'));// 获取A~Z之间的随机字符System.out.println("任意一个大写字符: " + GetRandomChar('A', 'Z'));// 获取0~9之间的随机字符System.out.println("0到9任意一个数字字符: " + GetRandomChar('0', '9'));}public static char GetRandomChar(char char1, char char2){char res = (char)(char1 + Math.random() * (char2 - char1 + 1));return res;}
}

在这里插入图片描述

Random()类

使用步骤

1、导包

import java.util.Random;

2、创建对象

Random r = new Random();

3、获取随机数

//Random获取的数据区间为[0,1)
int num = r.nextInt(10);	//获取数据区间为[0,10)内的整数

4、Random中提供了获取各种类型数据的方法

方法说明
public int nextInt()返回一个随机整数。
public int nextInt(itn)返回大于等于0且小于n的随机整数。
public long nextLong()返回一个随机长整型值。
public boolean nextBoolean()返回一个随机布尔型值。
public float nextFloat()返回一个随机浮点型值。
public double nextDouble()返回一个随机双精度型值。
public double nextGaussian()返回一个概率密度为高斯分布的双精度值。

Random生产区间随机数的技巧:减加法

在这里插入图片描述

import java.util.Random;	// 导包public class RandomTest {public static void main(String[] args) {// 创建随机数对象Random r = new Random();//生成 10 - 25 的随机数 ==> (0 - 15) + 10int data = r.nextInt(16) + 10;System.out.println(data);//生成 62 - 81 的随机数 ==> (0 - 19) + 62int data1 = r.nextInt(20) + 62;System.out.println(data1);
}

在这里插入图片描述

案例:猜测随机一个幸运号码 1 - 100


需求: 随机生产一个 1 - 100 之间的数据,提示用户猜测,猜大提示过大,猜小提示过小。

分析:
  1)随机生产一个 1 - 100 之间的数据;
  2)使用死循环让用户不断猜测并提示用户,猜大提示过大,猜小提示过小。

import java.util.Random;	
import java.util.Scanner;public class Main {public static void main(String[] args) {// 1、随机幸运号码 1 - 100之间 (0 - 99) + 1Random r = new Random();int luckNumber = r.nextInt(100) + 1;// 2、使用一个死循环让用户不断的去猜测,并给出提示Scanner sc = new Scanner(System.in);while (true){// 让用户输入数据System.out.println("请输入您猜测的数据(1 - 100)");int guessNumber = sc.nextInt();// 3、判断这个猜测的号码与幸运号码的大小情况if(guessNumber > luckNumber){System.out.println("您猜测的数据过大");}else if (luckNumber < guessNumber){System.out.println("您猜测的数据过小");}else {System.out.println("恭喜您,猜中了!");break; // 直接跳出并结束当前死循环!}}}
}

案例:生成随机字符

import java.util.Random;public class RandomString {public static void main(String[] args){System.out.println("随机生成6位数的字符串: " + getRandomString(6));System.out.println("随机生成8位数的字符串: " + getRandomString(8));System.out.println("随机生成10位数的字符串: " + getRandomString(10));}// 随机生成字符串public static String getRandomString(int length){// 生成字符范围String base = "abcdefghijklmnopqrstuvwxyz0123456789";Random random = new Random();// StringBuffer() 构造一个不带字符的字符串缓冲区,其初始容量为16个字符StringBuffer str = new StringBuffer();for(int i=0; i< length; i++){// 从 base.length 中获得一个随机数得到字符下标int number = random.nextInt(base.length());// append() 方法相当于 " + ",将指定的字符串追加到此字符序列// charAt() 方法 返回指定索引处的字符str.append(base.charAt(number));}// toString()就是把非字符串的数据类型转化为字符串return str.toString();}}

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

数据价值在线化丨TiDB 在企查查数据中台的应用及 v7.1 版本升级体验

本文介绍了企查查在数据中台建设中使用 TiDB 的经验和应用。通过从 MySQL 到 TiDB 的迁移&#xff0c;企查查构建了基于 TiDB Flink 的实时数仓框架 &#xff0c;充分利用了 TiDB 的分布式架构、MySQL 兼容性和完善的周边工具等特性&#xff0c;实现了数据的在线化处理。2023 年…

ACM题解Day6 | 质数素数模块 | 完数难题

学习目标&#xff1a; 博主介绍: 27dCnc 专题 : 数据结构帮助小白快速入门算法 &#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d;&#x1f44d; ☆*: .&#xff61;. o(≧▽…

Vue模板引用之ref特殊属性

1. 使用实例 <template><input ref"input" name"我是input的name" /><br /><ul><li v-for"arr in array" :key"arr" id"111" ref"itemRefs">{{arr}}</li></ul> </…

较通用web脚手架模板搭建

较通用web脚手架模板搭建 从这里开始就接触到以后写项目的思维了。 做一个web开发&#xff0c;那就要层次分明&#xff0c;要有个实现的规划&#xff0c;这通常也是有一个较为通用的模板的。 总的来说&#xff1a;不同的层次有不同的模块&#xff0c;每个模块有必须实现的功…

常用!基础!吴恩达deeplearning.ai:Tensorflow中数据形式

由于一些历史遗留问题&#xff0c;Numpy和Tensorflow在数据处理方面存在一些不一致的地方&#xff0c;今天我们主要来了解一下其中一些约定俗成的形式&#xff0c;从而能够让你写出正确的代码(耍帅&#xff09;。 文章目录 Tensorflow是如何表示数据的特征向量关于Numpy矩阵激…

Flutter(一):安装和环境配置、创建Flutter项目

安装和环境配置、创建Flutter项目 Flutter 下载方式1方式2 Flutter 环境配置配置国内镜像站点解压 Flutter将 flutter 添加到系统环境变量中运行 flutter doctor来验证安装 Android Studio下载插件创建项目安装 Android SDK 工具在模拟器上运行 Flutter 下载 方式1 全版本&…

深度学习介绍与环境搭建

深度学习介绍与环境搭建 慕课大学人工智能学习笔记&#xff0c;自己学习记录用的。&#xff08;赋上连接&#xff09; https://www.icourse163.org/learn/ZUCC-1206146808?tid1471365447#/learn/content?typedetail&id1256424053&cid1289366515人工智能、机器学习与…

数据结构day4

实现创建单向循环链表、创建结点、判空、输出、头插、按位置插入、尾删、按位置删除 loop_list.c #include "loop_list.h" loop_p create_head() {loop_p L(loop_p)malloc(sizeof(loop_list));if(LNULL){printf("空间申请失败\n");return NULL;}L->le…

华为配置WLAN AC和AP之间VPN穿越示例

配置WLAN AC和AP之间VPN穿越示例 组网图形 图1 配置WLAN AC和AP之间VPN穿越示例组网图 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件 业务需求 企业用户接入WLAN网络&#xff0c;以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时&#xff0c;不影响…

CentOS 7.9.2009离线安装mysql 8.0客户端 (rpm包)

环境&#xff1a; #需求&#xff1a; 该服务器需要将csv文件入库到远端的mysql 服务器上。 CentOS Linux release 7.9.2009 (Core) 离线环境 &#xff0c;需安装mysql客户端 8.0.27#下载地址 https://downloads.mysql.com/archives/community/#按此顺序安装 rpm -ivh mysql…

alist修改密码(docker版)

rootarmbian:~# docker exec -it [docker名称] ./alist admin set abcd123456 INFO[2024-02-20 11:06:29] reading config file: data/config.json INFO[2024-02-20 11:06:29] load config from env with prefix: ALIST_ INFO[2024-02-20 11:06:29] init logrus..…

Kotlin filterIsInstance filterNotNull forEach

Kotlin filterIsInstance filterNotNull forEach fun main(args: Array<String>) {val i1 MyItem(1, 1)val i2: MyItem? nullval i3: Int 3val i4 "4"val i5 nullval i6 MyItem(6, 6)val list mutableListOf<Any?>(i1, i2, i3, i4, i5, i6)lis…

【算法与数据结构】链表、哈希表、栈和队列、二叉树(笔记二)

文章目录 四、链表理论五、哈希表理论五、栈和队列理论5.1 单调栈 六、二叉树理论6.1 树的定义6.2 二叉树的存储方式6.3 二叉树的遍历方式6.4 高度和深度 最近博主学习了算法与数据结构的一些视频&#xff0c;在这个文章做一些笔记和心得&#xff0c;本篇文章就写了一些基础算法…

【初始RabbitMQ】高级发布确认的实现

在生产环境中由于一些不明原因&#xff0c;导致 rabbitmq 重启&#xff0c;在 RabbitMQ 重启期间生产者消息投递失败&#xff0c; 导致消息丢失&#xff0c;需要手动处理和恢复。于是&#xff0c;我们开始思考&#xff0c;如何才能进行 RabbitMQ 的消息可靠投递呢&#xff1f; …

浅谈集群的分类

本文主要介绍集群部署相关的知识&#xff0c;介绍集群部署的基础&#xff0c;集群的分类、集群的负载均衡技术&#xff0c;集群的可用性以及集群的容错机制。随后介绍Redis-Cluster以及Mysql的架构以及主从复制原理。 集群介绍 单台服务器本身会受到带宽、内存、处理器等多方面…

万界星空科技电子机电行业MES系统,2000元/年起

电子行业在生产管理上具有典型的离散制造特点&#xff0c;采用多品种、多批量或单件的生产组织方式。产品升级换代迅速&#xff0c;生命周期短&#xff0c;变更频繁&#xff0c;版本控制复杂。 同时产品的种类较多&#xff0c;非标准产品多&#xff0c;加工工序复杂&#xff0…

使用MongoDB数据库和Mongoose库在Node.js中进行数据存储

在Node.js中使用MongoDB数据库和Mongoose库进行数据存储是前端开发中常用的技术之一。MongoDB是一种非关系型数据库&#xff0c;具有高性能、易扩展等优点&#xff1b;而Mongoose是在Node.js中对MongoDB进行操作的框架&#xff0c;简化了数据库操作&#xff0c;并提供了丰富的功…

Leetcode日记 2583. 二叉树中的第 K 大层和

Leetcode日记 2583. 二叉树中的第 K 大层和 题目&#xff1a;解题思路&#xff1a;代码实现制作不易&#xff0c;感谢三连&#xff0c;谢谢啦 题目&#xff1a; 给你一棵二叉树的根节点 root 和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k 大的层和…

QT常用类

五、常用类 QString 字符串类&#xff08;掌握&#xff09; QString是Qt的字符串类&#xff0c;与C的std::string相比&#xff0c; 不再使用ASCII编码。QString使用的是Unicode编码。 QString中每个字符都是一个16位的QChar&#xff0c;而不是8位的char。 QString完全支持中文&…

动态预测波动率:ARCH模型和Heston模型

制定符合需要的资产组合需要了解每支的波动率&#xff0c;波动率高的资产意味着价格波动大&#xff0c;风险高&#xff0c;为了降低资产组合的风险&#xff0c;通常会在波动率较低的资产中分配更多的资金。同时波动率也和市场参与者的情绪有关&#xff0c;波动率大&#xff0c;…