JAVA-数组乱序
实现步骤
- 假设有一组数组numbers
- 从数组中最后一个元素开始遍历
- 设置一个随机数作为循环中遍历到的元素之前的所有元素的下标,即可从该元素之前的所有元素中随机取出一个
- 每次将随机取出的元素与遍历到的元素交换,即可完成乱序
实例如下:
import java.util.Arrays;
public class R18 {public static void main(String[] args) {int[] numbers= {12,34,23,56,17,27};for(int k=0;k<2;k++) {for(int i=numbers.length-1;i>0;i--) {int index=(int)(Math.random()*i);numbers[index]=numbers[i]^numbers[index];numbers[i]=numbers[i]^numbers[index];numbers[index]=numbers[i]^numbers[index];}}System.out.println(Arrays.toString(numbers));String[] playMusicList = { "1反方向的钟", "2七里香", "3半岛铁盒", "4双节棍", "5晴天", "6青花瓷", "7一路向北", "8稻香" };for(int i=playMusicList.length-1;i>0;i--) {int index=(int)(Math.random()*i);String temp=playMusicList[i];playMusicList[i]=playMusicList[index];playMusicList[index]=temp;}System.out.println(Arrays.toString(playMusicList));String[] role = { "安琪拉", "白起", "妲己", "狄仁杰", "典韦", "韩信", "老夫子", "刘禅", "鲁班七号", "墨子", "孙膑", "孙尚香", "孙悟空", "项羽","亚瑟", "周瑜", "庄周", "蔡文姬" };for(int i=role.length-1;i>0;i--) {int index2=(int)(Math.random()*i);String temp1=role[index2];role[index2]=role[i];role[i]=temp1;}System.out.println(Arrays.toString(role));int[] numbers2=new int[7]; }
}
代码执行结果:
[23, 17, 56, 12, 27, 34]
[2七里香, 7一路向北, 8稻香, 3半岛铁盒, 4双节棍, 5晴天, 6青花瓷, 1反方向的钟]
[墨子, 妲己, 庄周, 安琪拉, 孙膑, 周瑜, 孙尚香, 亚瑟, 老夫子, 刘禅, 韩信, 典韦, 项羽, 狄仁杰, 白起, 孙悟空, 蔡文姬, 鲁班七号]
洗牌算法
洗牌算法也是用数组乱序的方法实现 ,实例如下:
import java.util.Arrays;
public class R21 {public static void main(String[] args) {String[] num= {"A","2","3","4","5","6","7","8","9","10","j","q","k"};String[] num1= {"♥","♠","♦","♣"};String[] num3=new String[num.length*num1.length];String[] num4=new String[num3.length/4];String[] num5=new String[num3.length/4];String[] num6=new String[num3.length/4];String[] num7=new String[num3.length/4];int counter=0;int index=0;for(int i=0;i<num.length;i++) {for(int k=0;k<num1.length;k++) {num3[index++]=num[i]+num1[k];}}//整10次牌,即实现10次乱序for(int n=0;n<10;n++);{for(int m=0;m<num3.length-1;m++) {int index1=(int)(Math.random()*m);String temp1=num3[index1];num3[index1]=num3[m];num3[m]=temp1;}}for(int j=0,z=1,x=2,v=3;j<num3.length;j=j+4,z=z+4,x=x+4,v=v+4) {num4[counter]=num3[j];num5[counter]=num3[z];num6[counter]=num3[x];num7[counter]=num3[v];counter++; }System.out.println("玩家1:"+Arrays.toString(num4));System.out.println("玩家2:"+Arrays.toString(num5));System.out.println("玩家3:"+Arrays.toString(num6));System.out.println("玩家4:"+Arrays.toString(num7));}
}
执行结果如下:
玩家1:[10♠, j♣, 4♠, 4♣, 4♥, 6♦, 10♦, j♦, 5♥, A♦, 3♦, k♥, 10♥]
玩家2:[7♣, q♣, 2♣, 6♠, 5♣, 6♥, 9♥, q♠, 9♦, 8♥, 8♦, 7♠, A♠]
玩家3:[A♣, 3♣, 10♣, q♦, j♥, 5♦, 9♣, 7♥, 2♠, 5♠, 8♣, 2♦, 9♠]
玩家4:[k♦, 3♥, q♥, 6♣, 3♠, 7♦, 8♠, j♠, 2♥, 4♦, A♥, k♠, k♣]
相关文章:
JAVA-数组乱序
实现步骤 假设有一组数组numbers从数组中最后一个元素开始遍历设置一个随机数作为循环中遍历到的元素之前的所有元素的下标,即可从该元素之前的所有元素中随机取出一个每次将随机取出的元素与遍历到的元素交换,即可完成乱序 实例如下: im…...

Stable Diffusion 模型下载:majicMIX reverie 麦橘梦幻
本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十...
Java开发四则运算-使用递归和解释器模式
使用递归和解释器模式 程序结构设计具体实现1. 先上最重要的实现类:ExpressionParser(最重要)2. 再上上下文测试代码:Context(程序入口,稍重要)3. 使用到的接口和数据结构(不太重要的…...

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析
先看网页 代码审计: error_reporting(0); :关闭报错,代码的错误将不会显示 highlight_file(__FILE__); :将当前文件的源代码显示出来 eval($_GET[url]); :将url的值作为php代码执行 解题: 题目既然允许…...
5.深入理解箭头函数 - JS
什么是箭头函数? 箭头函数是指通过箭头函数表达式创建的函数,是匿名函数。 箭头函数表达式的语法更简洁,但语义有差异,所以用法上也有一些限制。尽管如此,箭头函数依旧被广泛运用在需要执行“小函数”的场景。 箭头…...

高效的工作学习方法
1.康奈尔笔记法 在这里插入图片描述 2. 5W2H法 3. 鱼骨图分析法 4.麦肯锡7步分析法 5.使用TODOLIST 6.使用计划模板(年月周) 7. 高效的学习方法 成年人的学习特点: 快速了解一个领域方法 沉浸式学习方法: 沉浸学习的判据&am…...
【MySQL】-17 MySQL综合-3(MySQL创建数据库+MySQL查看数据库+MySQL修改数据库+MySQL删除数据库+MySQL选择数据库)
MySQL创建数据库查看数据库修改数据库删除数据库选择数据库 一 MySQL创建数据库实例1:最简单的创建 MySQL 数据库的语句实例2:创建 MySQL 数据库时指定字符集和校对规则 二 MySQL查看或显示数据库实例1:查看所有数据库实例2:创建并…...

【教学类-46-08】20240212立体鱼1.0
前期做了一个立体春字 作品展示 背景需求: 在南浔古镇的非遗文化馆里看到一个新年活动折纸——年年有鱼挂饰 我从网上搜索教程,完全可以用15*15的手工纸给孩子们做一套。 折纸教程 视频暂时不能查看https://haokan.baidu.com/v?pdwisenatural&vid1…...

【JVM篇】什么是jvm
文章目录 🍔什么是Java虚拟机🛸Java虚拟机有什么用🌹Java虚拟机的功能🎈Java虚拟机的组成 🍔什么是Java虚拟机 JVM指的是Java虚拟机,本质上是一个运行在计算机上的程序,可以运行 Java字节码文件…...

Vulnhub靶场 DC-9
目录 一、环境搭建 二、信息收集 1、主机发现 2、指纹识别 三、漏洞复现 1、dirsearch目录探测 2、sqlmap注入测试 3、文件包含漏洞 4、Knockd敲门服务 5、ssh爆破 6、提权 四、提取flag 一、环境搭建 Vulnhub靶机下载: 官网地址:https://…...
day2-理解 linux 云计算
1.解释服务器是什么; 服务器是一种高性能计算机,它的主要功能是提供计算服务和资源给其他计算机使用。在网络环境中,服务器扮演着重要的角色,它们可以存储和管理大量的数据,处理网络请求,提供应用程序运行…...
Android 13.0 开启禁用系统接收短信功能
1.概述 在13.0的系统rom定制化中,在一些wifi产品的机器中,对于系统4g部分的功能需要裁剪 比如拨打电话 接听电话 短信功能等这部分 需要禁用系统对应的功能,接下来就来初步分析下系统中接收短信部分功能,然后实现禁用接收短信功能 2.禁用和启用系统短信功能实现的核心类 …...

compile error ESP32cam.h no such file or directory
解决方法 可以参考这篇文章: But first, you will need to download the esp32cam.h library. For this go to Github and download the esp32cam Zip. GitHub - yoursunny/esp32cam: OV2640 camera on ESP32-CAM, Arduino library 具体就是下面的这篇重要的文章 …...

使用 Chainlit, Langchain 及 Elasticsearch 轻松实现对 PDF 文件的查询
在我之前的文章 “Elasticsearch:与多个 PDF 聊天 | LangChain Python 应用教程(免费 LLMs 和嵌入)” 里,我详述如何使用 Streamlit,Langchain, Elasticsearch 及 OpenAI 来针对 PDF 进行聊天。在今天的文章中…...

Gitee的使用教程(简单详细)
1.安装git(我的电脑自带git,我没弄这步QAQ) Git (git-scm.com)https://git-scm.com/ 安装好后在桌面点击鼠标右键会出现git GUI 和 git Bash(没有的话点击显示更多选项) 2.去gitee上注册一个账号 工作台 - Gitee.co…...

生成树(习题)
模板】最小生成树 生成树有两种方法,但是我只会克鲁斯卡尔算法,所以接下来下面的的题目都是按照这个算法来实现的,首先来见一下生么是这个算法,在之前的我写的一篇博客中有题使叫修复公路,其实这一题就是使用了这个算…...

ARMv8-AArch64 的异常处理模型详解之异常处理概述Handling exceptions
异常处理模型详解之异常处理概述 一,异常处理相关概念二,异常处理概述 一,异常处理相关概念 在介绍异常处理之前,有必要了解一些关于异常处理状态的术语: 当处理器响应一个异常时,我们称该异常被获取了&a…...
Ubuntu 18.04上安装cuDNN 8.9.6.50:一站式指南
Content 一、前言二、准备工作三、安装步骤1. 启用本地仓库2. 导入CUDA GPG密钥3. 更新仓库元数据4. 安装运行时库5. 安装开发者库6. 安装代码示例7. 另外一种安装办法 四、验证安装1. 验证cuDNN版本2. 测试示例代码 五、总结 一、前言 在深度学习领域,高效的计算资…...

Microsoft Word 超链接
Microsoft Word 超链接 1. 取消超链接2. 自动超链接2.1. 选项2.2. 校对 -> 自动更正选项2.3. Internet 及网络路径替换为超链接 References 1. 取消超链接 Ctrl A -> Ctrl Shift F9 2. 自动超链接 2.1. 选项 2.2. 校对 -> 自动更正选项 2.3. Internet…...

SparkJDBC读写数据库实战
默认的操作 代码val df = spark.read.format("jdbc").option("url", "jdbc:postgresql://localhost:5432/testdb").option("user", "username").option("password", "password").option("driver&q…...
谷歌浏览器插件
项目中有时候会用到插件 sync-cookie-extension1.0.0:开发环境同步测试 cookie 至 localhost,便于本地请求服务携带 cookie 参考地址:https://juejin.cn/post/7139354571712757767 里面有源码下载下来,加在到扩展即可使用FeHelp…...

K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数
高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...