专栏首页深度学习计算机视觉一万副扑克分牌问题

一万副扑克分牌问题

问题描述:给你一万副扑克(一共540000张乱序)和一万个人,请设计一种算法,能够有效的将一万副扑克都分出来,并且每一副牌都是按数字和花色排好序的。

总任务:将一万副扑克都分出来,并且每一副都排好序 一万人:类比一万个CPU 分牌:操作系统干的活 人与人之间的交流:CPU之间的通信

步骤一:任务划分 任务1:局部的排序任务,也就是按照数字、花色进行的排序 任务2:一副一副牌分出来的任务

步骤二:任务调度与分配 首先,将540000张牌平均分给7300个人,有的人有73张,有的人74张; 然后每个人按照数字、花色排好序

然后剩余的2700人分成50个组,每个组54人,每个人手中只拿一种数字和花色的牌,按顺序站好队,其中每个组中选取出一个记忆力超级好的人(在计算机中搞一个缓存就行,存下所有状态),这个人负责对外联系并且记住所有人手中牌的数量,比如组内红桃A特别多的时候,就拒绝接收,总之要保持每个人手里的牌不会差太多。

然后对7300人进行归并排序,每两两归并一次后又将牌平分,然后,所有人就往50个小组中分别分牌,当遇到拒绝接收的小组后,就换另一个小组分,每个人分10张牌。

一个小组接收牌之后,按照事先预定好的规则,再在组内分发牌,比如小明就只收红桃A,、小红就只收黑桃A…

八次归并分牌之后,牌就都分往了50个组

步骤三:结果整合

然后50个组就能同时源源不断的组合出一副一副的排好序的牌了。

最后50个组再通信一下,将剩余的零数凑起来就行

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据挖掘之数据预处理学习笔记数据预处理目的主要任务

    数据预处理目的 保证数据的质量,包括确保数据的准确性、完整性和一致性 主要任务 数据清理 填写缺失的值、光滑噪声数据、识别或者删除离群的点,先解决这些脏数据,否...

    张俊怡
  • 机器学习Adaboost算法

    相关背景概念 一个概念如果存在一个多项式的学习算法能够学习它,并且正确率很高,那么,这个概念是强可学习的; 一个概念如果存在一个多项式的学习算法能够学习...

    张俊怡
  • 小目标检测相关技巧总结

    小目标问题在物体检测和语义分割等视觉任务中一直是存在的一个难点,小目标的检测精度通常只有大目标的一半。

    张俊怡
  • 自“彩票假设”理论被授予2019 ICLR 最佳论文后,该领域又有了哪些新的研究进展?

    在人们互相交流和信息传递的过程中,「隐喻」的作用极其重要。在1970年之前,当人们提起「桌面」这个单词,联想到的还都是放满了锅碗瓢勺的桌子。但是当天才计算机大师...

    AI科技评论
  • CVE 2017-0199漏洞利用的新姿势

    近日从客户处捕获一枚邮件附件中的可疑word样本,以下是扫描结果,检测率貌似不高。 ? ? 手动分析吧。 文件md5:0b16b255918264667a9f0...

    FB客服
  • PHP迭代器和生成器用法实例分析

    可以看到foreach 是先调用valid判断迭代器是否有效,然后再调用current获取当前值,同时调用next移动key到指向下一个值(输出key是因为 k...

    砸漏
  • 1.1.4 计算机网络的分类

    广域网的任务是提供长距离通信。运送主机所发送的数据,其覆盖范围通常为几十到几千千米的区域,因而有时也称为远程网。广域网是因特网的核心部分。连续广域网的各结点交换...

    week
  • 研发:重新认识shell io 重定向

    默认情况下始终有3个"文件"处于打开状态, stdin(键盘), stdout(屏幕), 和stderr(错误消息输出到屏幕上). 这3个文件和其他...

    heidsoft
  • rop练习--split

    这里只是一道简单的栈溢出问题,但是因为设置NX,所以要通过rop来执行shellcode。 参考链接:https://medium.com/@iseethiev...

    De4dCr0w
  • 稀疏数组 & 环形队列

    1、是什么? 比如有一个 11 * 11 的五子棋盘,我们要用程序模拟,那肯定就是二维数组。然后用1表示黑子,2表示白子,假如现在棋盘上只有一个黑子一个白子,...

    贪挽懒月

扫码关注云+社区

领取腾讯云代金券