洗扑克牌(乱数排列)(c/python略)
洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如1~N)打乱重新排列,只不过洗扑克牌多了一个花色判断的动作而已。
原理:以1~52的乱数排列为例好了,可以将阵列先依序由1到52填入,然后使用一个回圈走访阵列,并随机产生1~52的乱数,将产生的乱数当作索引取出阵列值,并与目前阵列走访到的值相交 换 ,如此就不用担心乱数重复的问题了,阵列走访完毕后,所有的数字也就重新排列了。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>#define N 52
int main()
{srand((int)time(NULL)); //生成不同随机数int poker[N + 1];//初始化扑克for (int i = 0; i <= N; i++){poker[i] = i;}//洗牌for (int i = 1; i<= N; i++){int j = rand() % 52 + 1; //产生1到52之间的随机数int temp = poker[j];poker[j] = poker[i];poker[i] = temp;}//打印花色与扑克数字for (int i = 1; i <= N; i++){//打印花色switch ((poker[i] - 1) / 13){case 0:printf("红心 ");break;case 1:printf("方块 ");break;case 2:printf("梅花 ");break;case 3:printf("黑桃 ");break;}int res = poker[i] % 13;switch (res){case 0:printf("K ");break;case 12:printf("Q ");break;case 11:printf("J ");break;default:printf("%d ",res);break;}if (i % 13 == 0){printf("\n");}}system("pause");return 0;}
洗扑克牌(乱数排列)(c/python略)相关推荐
- 洗扑克牌 (乱数排序)
解法: 初学者通常会直接想到,随机产生1~N的乱数并将之存入阵列中,后来产生的乱数存入阵列前必须先检查阵列中是否已有重复的数字,如果有这个数字就不存入,在重新产生下一个数.运气不好的话,重复的次数就会 ...
- 算法 洗扑克牌(乱数排列)
From Gossip@caterpillar Algorithm Gossip: 洗扑克牌(乱数排列) 说明 洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如1-N)打乱重新排列,只不过洗 ...
- C++经典算法题-洗扑克牌(乱数排列)
24.Algorithm Gossip: 洗扑克牌(乱数排列) 说明 洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如1-N)打乱重新排列,只不过洗扑克牌多了一个花色判断的动作而已. 解法 ...
- 扑克洗牌(乱数排列)
/** * 洗扑克牌(乱数排列) * @author huangbiao86 */ public class Card { public static void main(String[] args) ...
- flash中乱数排列(随机数)方法
介绍两种乱数排列的方法: 在1到32中选取10个随机数,要求这10个随机数必须是不重复的. 方法1:在1到32中选取1个随机数后,把它与前面选取的所有数进行比较,如果和其中一个相同,那么就重新选择:如 ...
- C语言实现-“洗 扑克牌”程序 算法(详解)
1.问题引入 我们对"扑克牌"这个词并不陌生,作为一种娱乐活动被大众所熟知.那么,每一局结束后,除了人工洗牌,我们接触到的软件.小程序中如何实现的"洗牌"呢?其 ...
- python的random函数掷色子和为7的概率_python产生乱数技巧- 模拟不公平的骰子
random模组是python内用来产生乱数的模组, 我们可以很容易呼叫内建函数模拟公平的骰子 (见: [python内建模组- random]教你模拟掷骰子) 那如果今天想模拟一个不公平的骰子怎幺办 ...
- Python,小学奥数排列组合题4位数的密码
一道小学奥数排列组合题,一个4位数的密码,每位数都不为0,4个数字之和为9,求有多少种不同的密码. 用for循环找出密码的范围,用str和int函数,匹配已知条件,用if语句进行判断. ''' 一个4 ...
- 【游戏中的算法】洗扑克牌算法
文章目录 一.洗扑克牌算法 二.C/C++实现方法: 三.JavaScript实现效果图: 1.初始页面 和 clear 后: 2.初始化扑克牌: 3.洗扑克牌后: 四.JS代码和54张扑克牌下载地址 ...
最新文章
- 【Linux 内核】实时调度类 ③ ( 实时调度类 rt_sched_class 源码 | 调度类 sched_class 源码 )
- LeetCode 6. ZigZag Conversion
- excel取消隐藏_Excel技巧:批量删除隐藏数据及隐藏工作表
- POJ 327820493083
- ProSolid下的遍历访问封装代码
- SecurtCRT连接服务器自动断开
- NBF事件中心架构设计与实现
- Jetty的JNDI数据源
- linux下的C语言开发(开篇)
- windows 打印机 print spooler 无法启动 错误1068 的问题
- objective-C 的OOP(上)--类定义、继承及方法调用
- 使用Docker镜像部署Coupons淘宝客项目
- 常见网络安全威胁及防范
- 海康sip服务器地址协议,海康摄像头的GB28181的sip服务器+ZL流媒体+前台测试页面...
- 屏幕录像软件无法录制电脑视频解决办法
- .net mysql 博客_asp.net搭建博客,使用BlogEngine.NET+MySql搭建博客
- 等到花儿也谢了的await
- 购物页面点叉号二维码隐藏的做法
- c语言课程设计自我评价,学生成长卡,个人表现,自评
- Win10笔记本触控板关闭/打开