Random生成伪随机数

简介: Random生成伪随机数

Random类:

主要方法

返回值 方法 描述
boolean nextBoolean() 返回一个布尔型随机数
double nextDouble() 返回一个double型随机数
float nextFloat() 返回一个float型随机数
int nextInt() 返回一个int型随机数
int nextInt(int n) 返回介于[0,n)int型随机数
long nextLong() 返回一个long型随机数
void setSeed(long newseed) 将newseed指定的值设为种子

案列:

生成[100,200]区间的随机数

分析:

以nextInt(int n)方法为例,可以生成任意区间的随机数,比如生成[100,到200]内的随机数,由于区间是[0,n),故可以选n=101,再加100,即nextInt(101)+100;由于Random不是真正的随机,也叫伪随机,我们可以设置一个时间种子。

代码如下:

public static void main(String[] args) {
        // 创建一个Random对象
        Random random = new Random();
        // 把当前时间设置为种子
        random.setSeed(System.currentTimeMillis());
        // 生成100个[100,200]的随机数
        for (int i = 0; i < 100; i++) {
            int num = random.nextInt(101)+100;
            System.out.println(num);
        }
    }

扩展:

根据生成随机数,完成猜数字小游戏

代码实现

public class Test2 {
    public static void main(String[] args) {
        // 创建一个数组
        int[] a=new int[50];
        // 创建一个Random对象生成随机数
        Random random =new Random();
        // 获取数组长度
        int length = a.length;
        // 循坏给数组赋值
        for (int i = 0; i < length; i++) {
            a[i]=random.nextInt(50);
        }
        // 创建Scanner对象,键盘输入
        Scanner input = new Scanner(System.in);
        System.out.println("请输入50以内的数:");
        int num = input.nextInt();
        boolean flag = false;
        for (int i:a
             ) {
            if(num==i){
                flag=true;
                break;
            }
        }
        if (flag) {
            System.out.println("恭喜你,猜对了");
        }else{
            System.out.println("抱歉,你猜错了");
        }
    }
}


目录
相关文章
|
4月前
|
传感器 机器学习/深度学习 算法
UWB-IMU、UWB定位对比研究(Matlab代码实现)
UWB-IMU、UWB定位对比研究(Matlab代码实现)
198 2
|
4月前
|
小程序 BI Go
当“企业微信协议”遇上旧iPad:一条被遗忘的推送如何撬动千万订单
在618大促中,面对短信退订率高、触达难的问题,运营人员巧妙利用闲置iPad登录企业微信,挖掘其未公开的协议接口,实现高效用户召回,最终提升转化率,保住预算。
184 0
|
10月前
|
机器学习/深度学习 人工智能 缓存
英伟达提出全新Star Attention,10倍加速LLM推理!登顶Hugging Face论文榜
英伟达推出的Star Attention技术,旨在解决Transformer模型在长序列推理中的高计算成本与速度瓶颈问题。通过两阶段块稀疏近似方法,第一阶段利用块局部注意力并行处理上下文信息,第二阶段通过全局注意力机制交互查询与缓存令牌,从而显著提升计算效率并减少通信开销。该技术可无缝集成到现有LLM中,将内存需求和推理时间降低多达11倍,同时保持高准确性。然而,其在极长序列处理中可能面临内存限制,并增加模型复杂性。尽管如此,Star Attention为长序列推理提供了创新解决方案,推动了Transformer模型的实际应用潜力。
189 19
|
4月前
|
存储 JSON 安全
如何开发工程项目部管理系统中的设备管理板块(附架构图+流程图+代码参考)
本文详解工程项目部设备管理系统的构建方法,涵盖设备管理的价值、功能清单、技术架构、核心数据模型、业务流程设计及开发实战技巧,提供可落地的代码示例,助力企业实现设备全生命周期管理,降低停工、延长设备寿命、提升管理效率。
|
存储 搜索推荐 Linux
5个值得学习的C++完整项目实战
5个值得学习的C++完整项目实战
|
Linux 索引
linux命令—ls
`ls` 是 Linux 系统中用于列出目录内容的基础命令,功能强大且使用频率极高。它可以帮助用户查看文件、分析磁盘空间及检查权限等。常用选项如 `-l` 显示详细信息,`-a` 包含隐藏文件,`-h` 以易读格式展示大小,`-t` 按修改时间排序等。通过组合选项,可实现复杂需求,如递归遍历目录(`-R`)、显示 inode 号(`-i`)或结合正则过滤特定文件。注意权限限制、特殊字符处理及大规模目录操作可能带来的性能问题。掌握 `ls` 是高效使用 Linux 的关键一步。
|
存储 NoSQL 算法
Redis中的BigKey问题:排查与解决思路
Redis中的BigKey问题:排查与解决思路
829 0
|
安全 开发工具 Android开发
探索Android应用开发的最佳实践
在这篇文章中,我们将深入探讨开发高效、稳定且用户友好的Android应用所需的关键实践。通过分析最新的开发工具和技术,本文旨在为开发者提供实用的建议和策略,以提升他们的应用性能和用户体验。
|
传感器 物联网 Linux
物联网设备的操作系统之争:Linux vs RTOS
【6月更文挑战第4天】在遥远的数码星球,物联网城中的Linux先生与RTOS小姐展开激烈角逐,分别在操作系统领域各显神通。Linux先生以其开源、兼容性强、功能丰富占据服务器、桌面及嵌入式设备市场,适合处理复杂任务和需要强大计算能力的设备。而RTOS小姐以实时性、高效响应和低资源占用见长,适用于资源有限、强调实时性的物联网设备。设备制造商在两者间抉择,引发物联网设备操作系统的选择大战。通过Python与FreeRTOS示例,展现了两者在智能家居和生产线控制等场景的应用。在物联网世界,Linux与RTOS共同推动设备智能化,为生活带来更多便捷。
773 3
如何关闭智能键盘IQKeyboardManager
如何关闭智能键盘IQKeyboardManager
423 1