当前位置: 首页 > news >正文

JAVA-数组乱序

实现步骤

  1. 假设有一组数组numbers
  2. 从数组中最后一个元素开始遍历
  3. 设置一个随机数作为循环中遍历到的元素之前的所有元素的下标,即可从该元素之前的所有元素中随机取出一个
  4. 每次将随机取出的元素与遍历到的元素交换,即可完成乱序

实例如下: 

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从数组中最后一个元素开始遍历设置一个随机数作为循环中遍历到的元素之前的所有元素的下标&#xff0c;即可从该元素之前的所有元素中随机取出一个每次将随机取出的元素与遍历到的元素交换&#xff0c;即可完成乱序 实例如下&#xff1a; im…...

Stable Diffusion 模型下载:majicMIX reverie 麦橘梦幻

本文收录于《AI绘画从入门到精通》专栏,专栏总目录:点这里。 文章目录 模型介绍生成案例案例一案例二案例三案例四案例五案例六案例七案例八案例九案例十...

Java开发四则运算-使用递归和解释器模式

使用递归和解释器模式 程序结构设计具体实现1. 先上最重要的实现类&#xff1a;ExpressionParser&#xff08;最重要&#xff09;2. 再上上下文测试代码&#xff1a;Context&#xff08;程序入口&#xff0c;稍重要&#xff09;3. 使用到的接口和数据结构&#xff08;不太重要的…...

[NSSCTF]-Web:[SWPUCTF 2021 新生赛]easyrce解析

先看网页 代码审计&#xff1a; error_reporting(0); &#xff1a;关闭报错&#xff0c;代码的错误将不会显示 highlight_file(__FILE__); &#xff1a;将当前文件的源代码显示出来 eval($_GET[url]); &#xff1a;将url的值作为php代码执行 解题&#xff1a; 题目既然允许…...

5.深入理解箭头函数 - JS

什么是箭头函数&#xff1f; 箭头函数是指通过箭头函数表达式创建的函数&#xff0c;是匿名函数。 箭头函数表达式的语法更简洁&#xff0c;但语义有差异&#xff0c;所以用法上也有一些限制。尽管如此&#xff0c;箭头函数依旧被广泛运用在需要执行“小函数”的场景。 箭头…...

高效的工作学习方法

1.康奈尔笔记法 在这里插入图片描述 2. 5W2H法 3. 鱼骨图分析法 4.麦肯锡7步分析法 5.使用TODOLIST 6.使用计划模板&#xff08;年月周&#xff09; 7. 高效的学习方法 成年人的学习特点&#xff1a; 快速了解一个领域方法 沉浸式学习方法&#xff1a; 沉浸学习的判据&am…...

【MySQL】-17 MySQL综合-3(MySQL创建数据库+MySQL查看数据库+MySQL修改数据库+MySQL删除数据库+MySQL选择数据库)

MySQL创建数据库查看数据库修改数据库删除数据库选择数据库 一 MySQL创建数据库实例1&#xff1a;最简单的创建 MySQL 数据库的语句实例2&#xff1a;创建 MySQL 数据库时指定字符集和校对规则 二 MySQL查看或显示数据库实例1&#xff1a;查看所有数据库实例2&#xff1a;创建并…...

【教学类-46-08】20240212立体鱼1.0

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

【JVM篇】什么是jvm

文章目录 &#x1f354;什么是Java虚拟机&#x1f6f8;Java虚拟机有什么用&#x1f339;Java虚拟机的功能&#x1f388;Java虚拟机的组成 &#x1f354;什么是Java虚拟机 JVM指的是Java虚拟机&#xff0c;本质上是一个运行在计算机上的程序&#xff0c;可以运行 Java字节码文件…...

Vulnhub靶场 DC-9

目录 一、环境搭建 二、信息收集 1、主机发现 2、指纹识别 三、漏洞复现 1、dirsearch目录探测 2、sqlmap注入测试 3、文件包含漏洞 4、Knockd敲门服务 5、ssh爆破 ​​​​​​​6、提权 四、提取flag 一、环境搭建 Vulnhub靶机下载&#xff1a; 官网地址&#xff1a;https://…...

day2-理解 linux 云计算

1.解释服务器是什么&#xff1b; 服务器是一种高性能计算机&#xff0c;它的主要功能是提供计算服务和资源给其他计算机使用。在网络环境中&#xff0c;服务器扮演着重要的角色&#xff0c;它们可以存储和管理大量的数据&#xff0c;处理网络请求&#xff0c;提供应用程序运行…...

Android 13.0 开启禁用系统接收短信功能

1.概述 在13.0的系统rom定制化中,在一些wifi产品的机器中,对于系统4g部分的功能需要裁剪 比如拨打电话 接听电话 短信功能等这部分 需要禁用系统对应的功能,接下来就来初步分析下系统中接收短信部分功能,然后实现禁用接收短信功能 2.禁用和启用系统短信功能实现的核心类 …...

compile error ESP32cam.h no such file or directory

解决方法 可以参考这篇文章&#xff1a; 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&#xff1a;与多个 PDF 聊天 | LangChain Python 应用教程&#xff08;免费 LLMs 和嵌入&#xff09;” 里&#xff0c;我详述如何使用 Streamlit&#xff0c;Langchain, Elasticsearch 及 OpenAI 来针对 PDF 进行聊天。在今天的文章中&#xf…...

Gitee的使用教程(简单详细)

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

生成树(习题)

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

ARMv8-AArch64 的异常处理模型详解之异常处理概述Handling exceptions

异常处理模型详解之异常处理概述 一&#xff0c;异常处理相关概念二&#xff0c;异常处理概述 一&#xff0c;异常处理相关概念 在介绍异常处理之前&#xff0c;有必要了解一些关于异常处理状态的术语&#xff1a; 当处理器响应一个异常时&#xff0c;我们称该异常被获取了&a…...

Ubuntu 18.04上安装cuDNN 8.9.6.50:一站式指南

Content 一、前言二、准备工作三、安装步骤1. 启用本地仓库2. 导入CUDA GPG密钥3. 更新仓库元数据4. 安装运行时库5. 安装开发者库6. 安装代码示例7. 另外一种安装办法 四、验证安装1. 验证cuDNN版本2. 测试示例代码 五、总结 一、前言 在深度学习领域&#xff0c;高效的计算资…...

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…...

一款多功能显示控制器芯片,FHD 120/144Hz,支持最高1920x1080@120Hz.

主要特性特性类别具体规格输入接口1VGA (模拟RGB)、1HDMI 1.4 (带HDCP1.4/2.2)、1DP1.2 组合接口 (兼容HDMI 1.4&#xff0c;带HDCP1.4/2.2)输出接口2 Port LVDS&#xff0c;支持8bit/10bit最大分辨率1920x1200100Hz 或 1920x1080120Hz (带ODC)色彩深度输入&#xff1a;6/8/10b…...

蓝牙5.0广播包PDU字段逐行解读:从ADV_IND到AUX_CHAIN_IND,新手也能看懂的报文拆解

蓝牙5.0广播包PDU字段逐行解读&#xff1a;从ADV_IND到AUX_CHAIN_IND 在物联网设备开发中&#xff0c;蓝牙低功耗&#xff08;BLE&#xff09;技术因其低功耗和简单连接特性而广受欢迎。但对于刚接触BLE协议的开发者来说&#xff0c;最头疼的莫过于理解那些晦涩的协议文档和复…...

中兴光猫终极破解指南:3步解锁永久Telnet访问权限

中兴光猫终极破解指南&#xff1a;3步解锁永久Telnet访问权限 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 您是否曾经因为中兴光猫的高级功能被限制而感到困扰&#xff1f;无法配置…...

罗技鼠标宏:绝地求生后坐力控制全攻略

罗技鼠标宏&#xff1a;绝地求生后坐力控制全攻略 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 想要在《绝地求生》中实现精准压枪&#xff0c…...

抖音批量下载神器:开源工具完整使用指南

抖音批量下载神器&#xff1a;开源工具完整使用指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下…...

5分钟快速上手Mermaid Live Editor:免费在线图表编辑器完全指南

5分钟快速上手Mermaid Live Editor&#xff1a;免费在线图表编辑器完全指南 【免费下载链接】mermaid-live-editor Edit, preview and share mermaid charts/diagrams. New implementation of the live editor. 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid-li…...

AI 变频调速水泵智能功率 MOSFET 完整选型方案

2026年&#xff0c;AI技术在智能水务及工业泵控系统深度渗透&#xff08;如预测性维护、能效优化、智能流量调节&#xff09;&#xff0c;变频器对功率 MOSFET 提出更高要求&#xff1a;高效节能、高可靠性、快速响应。微碧半导体&#xff08;VBsemi&#xff09;基于先进的 Tre…...

保姆级教程:在RK3568开发板上搞定ES8316声卡驱动(从DTS配置到tinymix调试全流程)

RK3568开发板ES8316声卡驱动全流程实战指南 从零开始的声音之旅 当你第一次拿到RK3568开发板&#xff0c;想要实现音频功能时&#xff0c;ES8316这颗高性能低功耗的音频编解码芯片可能会成为你的首选。但在嵌入式Linux环境下&#xff0c;从硬件连接到软件驱动&#xff0c;再到最…...

用FPGA的DDS IP核做个信号发生器:从Vivado配置到ILA抓波形实战

基于FPGA的DDS信号发生器实战&#xff1a;从IP核配置到硬件调试全解析 在数字信号处理领域&#xff0c;直接数字频率合成(DDS)技术因其频率分辨率高、切换速度快和相位连续可调等优势&#xff0c;已成为现代电子系统中不可或缺的核心技术。本文将带领读者完成一个完整的FPGA-ba…...

解析日本工程塑料厂家代理新日铁住金产品的核心价值与

在众多日本工程塑料供应商中&#xff0c;新日铁住金凭借其在特种工程塑料领域的技术积累和稳定品质&#xff0c;成为众多制造企业的优选合作伙伴。对于寻求高性价比、稳定供应的塑胶制品厂、精密注塑厂及汽车零部件厂商而言&#xff0c;选择专业代理商是平衡品质与成本的关键。…...