最近刷leetCood有点着魔了,突然想写一个扑克牌洗牌的实现方式。

大脑中第一印象就是用随机数来实现:
1)随机数范围为1-54
2)建立一个集合来存放随机生成的数
3)新随机出来的数如果该集合有,则丢弃,反之则加进去

直接上代码吧,不完善,随便写写,不喜勿喷。

//实现方式一  使用随机数 随机生成54个在1-54范围内的数字,当这些数字不重复时,完成洗牌public static void ShuffleTheDeck() {System.out.println("开始时间:" + new Date());List reslutList = new ArrayList();//开始随机洗牌Random random = new Random();while (true) {int endRand = random.nextInt(54);reslutList.add(endRand+1);if (ifRepeat(reslutList) == false) {reslutList.remove(reslutList.size() - 1);}if (reslutList.size() >= 54) {break;}}System.out.println("结束时间:" + new Date());for (int j = 0; j < reslutList.size(); j++) {System.out.println(reslutList.get(j).toString());}}//该方法是判断集合中是否有重复元素的,如果有返回false,反之返回truepublic static boolean ifRepeat(List list) {HashSet set = new HashSet<>(list);Boolean bool = set.size() == list.size() ? true : false;return bool;}

这种方式很弱智,很浪费性能。后面有时间的话可能会使用其他方法来试试实现。

使用随机数实现扑克牌洗牌的算法(弱智版)相关推荐

  1. 扑克牌洗牌算法-random_shuffle

    扑克牌洗牌有多种算法: 第1个:每次从原数组A取出范围[1,i]的数放入B数组. 缺点是每次都要将数组i后面的元素进行移动. 是一个o(n2)算法 void xipai(int n){ // o(n2 ...

  2. C语言 扑克牌洗牌发牌统计同花顺个数程序

    目录 一.2个算法关键点 关键点1:洗牌算法 关键点2:查找同花顺算法 二.运行结果 三.完整代码 题目: 一张扑克牌可用结构类型描述,一副扑克牌的52张牌则是一个结构数组. 1.试编写洗牌函数和供4 ...

  3. Java扑克牌洗牌代码

    public class p18 {public static void main(String[] args) {//扑克牌洗牌 52张//数组下标就是值//0--12 13--25 26--38 ...

  4. Java数据结构之基于ArrayList编写大众麻将和扑克牌洗牌小练习

    目录 1.大众麻将洗牌小程序 1.1实现效果 1.2源码展示 2.扑克牌洗牌小程序 2.1实现效果 2.2源码展示 1.大众麻将洗牌小程序 大众麻将有3种牌色分别为万.条.筒.每种牌色有9张,如一万到 ...

  5. Java项目:模拟扑克牌洗牌发牌排序

    用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...

  6. 用JAVA实现简单的扑克牌洗牌发牌并排序

    用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...

  7. 【实现一个扑克牌洗牌游戏,然后给三个玩家洗牌发牌】

            实现一个扑克牌洗牌游戏,    第1个集合:存储所有数字(2345678910JQKA)    第2个集合:存储所有花色()    将第1个集合和第2个集合混合,再加上两张鬼牌组成54 ...

  8. 用java制作扑克牌_Java实现扑克牌洗牌和发牌

    本文实例为大家分享了Java实现扑克牌洗牌发牌的具体代码,供大家参考,具体内容如下 实现原理:使用4种花色和13个数字组合成52张牌,放进一个集合中:通过把集合数据排序打乱实现洗牌操作,然后在通过循环 ...

  9. 用java制作扑克牌_Java模拟扑克牌洗牌实现生成52张扑克的方法示例

    本文实例讲述了Java模拟扑克牌洗牌实现生成52张扑克的方法.分享给大家供大家参考,具体如下: 要求: 生成52张扑克,模拟扑克牌洗牌,并输出. 实现代码: package com.NCU.ZHANG ...

最新文章

  1. BigDecimal 使用详解
  2. [排序算法] 选择排序(2种)
  3. Oracle 表及表空间(一)
  4. Android从普通发送和接收短信到对短信进行拦截
  5. fck java_FCkjava三种调用方法
  6. Java中类方法的快速入门
  7. PHP经验——PHPDoc PHP注释的标准文档(翻译自Wiki)
  8. Thrift搭建分布式微服务(四)
  9. 4.数据结构 --- 串
  10. java 事务嵌套_Java事务以及嵌套事务
  11. EMC/EMI 测试顺利通过
  12. Linux实战——Shell编程练习(更新12题)
  13. 计算机组成原理实验箱D7,计算机组成原理与系统结构实验仪教学设备,上海求育...
  14. 麒麟电脑linux微信版本过低,Ubuntu安装微信,解决deepin“版本过低”或NO_PUBKEY问题...
  15. JavaScript关闭窗口的方法
  16. Spring Boot、Spring Cloud 自定义配置文件(如何整合配置中心)
  17. 房屋装修合同书范本【收藏备用】
  18. TC+Iptables+htb
  19. linux vi后不保存退出,linux下退出VI的方法:不保存退出
  20. 意欧斯自主研发WMS、WCS系统,科技创新仓储物流管理

热门文章

  1. iPhone, iPad升级ios7正式版教程
  2. html 点击新建窗口,【单选题】在HTML中,若实现单击超链接时,弹出一个新的网页窗口,下列的()选项符合要求。 A. 节目 B. 节目 C. 节目 D. 节目...
  3. 集合中常用的合并 求交集 并集 补集问题
  4. c语言输出字符串缩进,C语言printf()和puts()的简单使用
  5. [干货分享]1000篇干货好文!量子技术——资讯篇
  6. C - 无间道之并查集 HihoCoder - 1066
  7. webform asp.net gridview 分页 利用aspnetpager 分页
  8. 增值税(进项税、销项税)-from itpub
  9. 信息产业部规范游戏职业培训环境
  10. 大学各系男生求爱短信 (你是哪种?) 收藏