使用随机数实现扑克牌洗牌的算法(弱智版)
最近刷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;}
这种方式很弱智,很浪费性能。后面有时间的话可能会使用其他方法来试试实现。
使用随机数实现扑克牌洗牌的算法(弱智版)相关推荐
- 扑克牌洗牌算法-random_shuffle
扑克牌洗牌有多种算法: 第1个:每次从原数组A取出范围[1,i]的数放入B数组. 缺点是每次都要将数组i后面的元素进行移动. 是一个o(n2)算法 void xipai(int n){ // o(n2 ...
- C语言 扑克牌洗牌发牌统计同花顺个数程序
目录 一.2个算法关键点 关键点1:洗牌算法 关键点2:查找同花顺算法 二.运行结果 三.完整代码 题目: 一张扑克牌可用结构类型描述,一副扑克牌的52张牌则是一个结构数组. 1.试编写洗牌函数和供4 ...
- Java扑克牌洗牌代码
public class p18 {public static void main(String[] args) {//扑克牌洗牌 52张//数组下标就是值//0--12 13--25 26--38 ...
- Java数据结构之基于ArrayList编写大众麻将和扑克牌洗牌小练习
目录 1.大众麻将洗牌小程序 1.1实现效果 1.2源码展示 2.扑克牌洗牌小程序 2.1实现效果 2.2源码展示 1.大众麻将洗牌小程序 大众麻将有3种牌色分别为万.条.筒.每种牌色有9张,如一万到 ...
- Java项目:模拟扑克牌洗牌发牌排序
用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...
- 用JAVA实现简单的扑克牌洗牌发牌并排序
用JAVA实现简单的扑克牌洗牌发牌并排序,首先写代码之前需要明确需要分哪些步骤: 创建一个HashMap集合对象 创建一个ArrayList集合对象 生成一副扑克牌 将扑克牌按照键值关系添加到Hash ...
- 【实现一个扑克牌洗牌游戏,然后给三个玩家洗牌发牌】
实现一个扑克牌洗牌游戏, 第1个集合:存储所有数字(2345678910JQKA) 第2个集合:存储所有花色() 将第1个集合和第2个集合混合,再加上两张鬼牌组成54 ...
- 用java制作扑克牌_Java实现扑克牌洗牌和发牌
本文实例为大家分享了Java实现扑克牌洗牌发牌的具体代码,供大家参考,具体内容如下 实现原理:使用4种花色和13个数字组合成52张牌,放进一个集合中:通过把集合数据排序打乱实现洗牌操作,然后在通过循环 ...
- 用java制作扑克牌_Java模拟扑克牌洗牌实现生成52张扑克的方法示例
本文实例讲述了Java模拟扑克牌洗牌实现生成52张扑克的方法.分享给大家供大家参考,具体如下: 要求: 生成52张扑克,模拟扑克牌洗牌,并输出. 实现代码: package com.NCU.ZHANG ...
最新文章
- BigDecimal 使用详解
- [排序算法] 选择排序(2种)
- Oracle 表及表空间(一)
- Android从普通发送和接收短信到对短信进行拦截
- fck java_FCkjava三种调用方法
- Java中类方法的快速入门
- PHP经验——PHPDoc PHP注释的标准文档(翻译自Wiki)
- Thrift搭建分布式微服务(四)
- 4.数据结构 --- 串
- java 事务嵌套_Java事务以及嵌套事务
- EMC/EMI 测试顺利通过
- Linux实战——Shell编程练习(更新12题)
- 计算机组成原理实验箱D7,计算机组成原理与系统结构实验仪教学设备,上海求育...
- 麒麟电脑linux微信版本过低,Ubuntu安装微信,解决deepin“版本过低”或NO_PUBKEY问题...
- JavaScript关闭窗口的方法
- Spring Boot、Spring Cloud 自定义配置文件(如何整合配置中心)
- 房屋装修合同书范本【收藏备用】
- TC+Iptables+htb
- linux vi后不保存退出,linux下退出VI的方法:不保存退出
- 意欧斯自主研发WMS、WCS系统,科技创新仓储物流管理
热门文章
- iPhone, iPad升级ios7正式版教程
- html 点击新建窗口,【单选题】在HTML中,若实现单击超链接时,弹出一个新的网页窗口,下列的()选项符合要求。
A. 节目 B. 节目 C. 节目 D. 节目...
- 集合中常用的合并 求交集 并集 补集问题
- c语言输出字符串缩进,C语言printf()和puts()的简单使用
- [干货分享]1000篇干货好文!量子技术——资讯篇
- C - 无间道之并查集 HihoCoder - 1066
- webform asp.net gridview 分页 利用aspnetpager 分页
- 增值税(进项税、销项税)-from itpub
- 信息产业部规范游戏职业培训环境
- 大学各系男生求爱短信 (你是哪种?) 收藏