洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如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. 洗扑克牌 (乱数排序)

    解法: 初学者通常会直接想到,随机产生1~N的乱数并将之存入阵列中,后来产生的乱数存入阵列前必须先检查阵列中是否已有重复的数字,如果有这个数字就不存入,在重新产生下一个数.运气不好的话,重复的次数就会 ...

  2. 算法 洗扑克牌(乱数排列)

    From Gossip@caterpillar Algorithm Gossip: 洗扑克牌(乱数排列) 说明 洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如1-N)打乱重新排列,只不过洗 ...

  3. C++经典算法题-洗扑克牌(乱数排列)

    24.Algorithm Gossip: 洗扑克牌(乱数排列) 说明 洗扑克牌的原理其实与乱数排列是相同的,都是将一组数字(例如1-N)打乱重新排列,只不过洗扑克牌多了一个花色判断的动作而已. 解法 ...

  4. 扑克洗牌(乱数排列)

    /** * 洗扑克牌(乱数排列) * @author huangbiao86 */ public class Card { public static void main(String[] args) ...

  5. flash中乱数排列(随机数)方法

    介绍两种乱数排列的方法: 在1到32中选取10个随机数,要求这10个随机数必须是不重复的. 方法1:在1到32中选取1个随机数后,把它与前面选取的所有数进行比较,如果和其中一个相同,那么就重新选择:如 ...

  6. C语言实现-“洗 扑克牌”程序 算法(详解)

    1.问题引入 我们对"扑克牌"这个词并不陌生,作为一种娱乐活动被大众所熟知.那么,每一局结束后,除了人工洗牌,我们接触到的软件.小程序中如何实现的"洗牌"呢?其 ...

  7. python的random函数掷色子和为7的概率_python产生乱数技巧- 模拟不公平的骰子

    random模组是python内用来产生乱数的模组, 我们可以很容易呼叫内建函数模拟公平的骰子 (见: [python内建模组- random]教你模拟掷骰子) 那如果今天想模拟一个不公平的骰子怎幺办 ...

  8. Python,小学奥数排列组合题4位数的密码

    一道小学奥数排列组合题,一个4位数的密码,每位数都不为0,4个数字之和为9,求有多少种不同的密码. 用for循环找出密码的范围,用str和int函数,匹配已知条件,用if语句进行判断. ''' 一个4 ...

  9. 【游戏中的算法】洗扑克牌算法

    文章目录 一.洗扑克牌算法 二.C/C++实现方法: 三.JavaScript实现效果图: 1.初始页面 和 clear 后: 2.初始化扑克牌: 3.洗扑克牌后: 四.JS代码和54张扑克牌下载地址 ...

最新文章

  1. 【Linux 内核】实时调度类 ③ ( 实时调度类 rt_sched_class 源码 | 调度类 sched_class 源码 )
  2. LeetCode 6. ZigZag Conversion
  3. excel取消隐藏_Excel技巧:批量删除隐藏数据及隐藏工作表
  4. POJ 327820493083
  5. ProSolid下的遍历访问封装代码
  6. SecurtCRT连接服务器自动断开
  7. NBF事件中心架构设计与实现
  8. Jetty的JNDI数据源
  9. linux下的C语言开发(开篇)
  10. windows 打印机 print spooler 无法启动 错误1068 的问题
  11. objective-C 的OOP(上)--类定义、继承及方法调用
  12. 使用Docker镜像部署Coupons淘宝客项目
  13. 常见网络安全威胁及防范
  14. 海康sip服务器地址协议,海康摄像头的GB28181的sip服务器+ZL流媒体+前台测试页面...
  15. 屏幕录像软件无法录制电脑视频解决办法
  16. .net mysql 博客_asp.net搭建博客,使用BlogEngine.NET+MySql搭建博客
  17. 等到花儿也谢了的await
  18. 购物页面点叉号二维码隐藏的做法
  19. c语言课程设计自我评价,学生成长卡,个人表现,自评
  20. Win10笔记本触控板关闭/打开

热门文章

  1. 【Go】Go语言基本数据类型
  2. 单目相机三维姿态解算
  3. 对拉格朗日乘数法的直观认识
  4. 暴雪战网怎么修改服务器,战网更改地区的图文教程
  5. App移动应用测试点总结
  6. 感性认识:计算机基本工作原理
  7. ios能玩java的模拟器_app适用于模拟器,但不适用于ios设备
  8. logback高级特性使用(一)
  9. 量化交易之单因子策略
  10. 阿里云天池供应链大赛(一)