java----洗牌
洗牌在生活中十分常见,现在需要写一个程序模拟洗牌的过程。现在需要洗2n张牌,从上到下依次是第1张,第2张,第3张一直到第2n张。首先,我们把这2n张牌分成两堆,左手拿着第1张到第n张(上半堆),右手拿着第n+1张到第2n张(下半堆)。接着就开始洗牌的过程,先放下右手的最后一张牌,再放下左手的最后一张牌,接着放下右手的倒数第二张牌,再放下左手的倒数第二张牌,直到最后放下左手的第一张牌。接着把牌合并起来就可以了。例如有6张牌,最开始牌的序列是1,2,3,4,5,6。首先分成两组,左手拿着1,2,3;右手拿着4,5,6。在洗牌过程中按顺序放下了6,3,5,2,4,1。把这六张牌再次合成一组牌之后,我们按照从上往下的顺序看这组牌,就变成了序列
1,4,2,5,3,6。现在给出一个原始牌组,请输出这副牌洗牌k次之后从上往下的序列。
输入描述:
第一行一个数T(T ≤ 100),表示数据组数。对于每组数据,第一行两个数n, k(1≤ n, k≤ 100),接下来一行有2n个数al, 2 . ...2n (l s ai≤ 1000)。表示原始牌组从上到下的序列。
输出描述:
对于每组数据,输出一行,最终的序列。数字之间用空格隔开,不要在行末输出多余的空格。
import java.util.ArrayList; import java.util.List; import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc =new Scanner(System.in);int T= sc.nextInt();for (int i = 0; i < T; i++) {int n=sc.nextInt();int k= sc.nextInt();int[] arr=new int[2*n];//读取for (int j = 0; j < 2 * n; j++) {arr[j]= sc.nextInt();}//洗for (int j = 0; j < k; j++) {wash(arr,2*n);}//printfor (int j = 0; j < 2*n-1; j++) {System.out.print(arr[j] + " ");}System.out.println(arr[2*n-1]);}}public static void wash(int[] arr,int n) {List<Integer> arrayList=new ArrayList<Integer>();for (int i = 0; i < n/2; i++) {arrayList.add(arr[i]);arrayList.add(arr[i+n/2]);}for (int i = 0; i < n; i++) {arr[i]= arrayList.get(i);}} }
java----洗牌相关推荐
- java洗牌_java语言实现简单的洗牌,发牌
packagecom.java.lei.homework;importjava.util.Arrays;importjava.util.Random;public classPokerGame {// ...
- java 洗牌_java数组之完美洗牌算法
题目详情 有个长度为2n的数组{a1,a2,a3,...,an,b1,b2,b3,...,bn},希望排序后{a1,b1,a2,b2,....,an,bn},请考虑有无时间复杂度o(n),空间复杂度0 ...
- java人工洗牌窗口程序_求解,用JAVA写洗牌与发牌模拟程序
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import java.util.Random; class card { public String face; public String suit; ...
- 【Java】 实现一副扑克牌,包含:洗牌+发牌(3个人,一人5张)+输出牌的信息 的逻辑
import java.util.ArrayList; import java.util.List; import java.util.Random;class Card{private int ra ...
- java练习:模拟试下你斗地主的洗牌、发牌、看牌功能
/*** 需求:模拟实现斗地主的分牌情形* 分析: 1 模拟牌盒,存储54张牌,0-53 每个数字分别对应一张牌,用Map存储* 2 将0-53序号随机分发到三个人手中,欲实现序号的随机排序,考虑使用 ...
- Java中使用HashMap,TreeSet和List来实现模拟斗地主的洗牌和发牌的小例子
模拟斗地主洗牌,发牌 使用HashMap,TreeSet和List来实现 效果如下图所示: 详细实现代码如下: package star.july.tags;import java.util.Arr ...
- java使用集合模拟斗地主洗牌发牌案例
package com.itheima.模拟斗地主.斗地主版本2;import java.util.ArrayList; import java.util.Collections; import ja ...
- Java扑克牌(洗牌Collections.shuffle)
Java.util.Collections类下有一个静态的shuffle()方法,如下: 1)static void shuffle(List<?> list) 使用默认随机源对列表进行 ...
- Java——集合(模拟斗地主洗牌和发牌进行排序)
//改进版,没有进行按牌的地位从小到大排序 package com.yy.test;import java.util.ArrayList; import java.util.Collections;p ...
- java collections_扫盲java.util.Collections工具包,学习排序、二分、洗牌、旋转算法
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 算法是数据结构的灵魂! 好的算法搭配上合适的数据结构,可以让代码功能大大的提升效率. ...
最新文章
- 领域驱动设计(DDD:Domain-Driven Design)
- STM32开发 -- Visual Studio C++编写串口上位机
- nginx php-fpm 输出php错误日志(转)
- option标签selected=selected属性失效的问题
- python3 gui协程_Python3进阶-协程
- Java高级语法笔记-匿名类(Anonymous Class)
- Linux指令设置波特率停止位,linux下的picocom怎么设置停止位,波特率
- 大数据_Flink_流式处理_简介_流数处理的发展演变---Flink工作笔记0004
- java rx_史上最浅显易懂的RxJava入门教程
- C语言嵌入式系统编程修炼之(四)屏幕操作
- 感谢大家对课程的关注和喜爱
- python_numpy的基础
- WPS中表格中上下线的磅数调整问题-三线表制作
- 党建管理系统开发,组织部干部人事任免平台建设方案
- android高帧率模式,《和平精英》等五款游戏已经适配小米10系列高帧率模式
- 音乐播放器mplayer的简单使用
- 微信撤回的消息能恢复吗?微信撤回的消息怎么恢复
- EXSI虚拟机备份—ikuai和OPenWRT
- 开汉庭酒店赚钱吗?三年的问题逐渐有答案了
- Markdown入门指南 --写博客,word必备技术
热门文章
- 黑帽seo收徒:黑帽SEO的常见方法以及遇到问题怎么解决
- lol提示游戏环境异常重启计算机,lol游戏环境异常请重启机器,小编告诉你lol游戏环境异常请重启机器怎么解决...
- 我想跳槽了,该怎么办?,flutter路由切换动画
- 视频特效编辑软件After Effects 2022 for Mac(ae 2022) v22.6.0中文版
- 菜鸟笔记python元组列表字典
- 励志语录,送给正在努力奋斗的人!
- bat调用python脚本并获取返回值_python生成bat脚本,并且执行bat脚本
- 巧用符号链接移动文件夹位置
- 视觉中国的NoSQL之路-从mysql迁移到Mongodb
- 通过拼数据库碎片的方式恢复虚拟机磁盘文件丢失问题