跑胡子规则

  1. 跑胡子,小写“一”到“十”各4张共40张,大写“壹”到“拾”各4张共40张。
  2. 砌牌:跑胡子为3人同玩,庄家砌21张,其他方位砌20张,留19张在墩上。
  3. 一对牌:砌牌后,手中2个相同的牌为1对。
  4. 一坎牌:砌牌后,手中3个相同的牌为1坎。一坎牌不能拆散与其他牌组合。
  5. 一提牌:砌牌后,手中4个相同的牌为1提。一提牌不能拆散与其他牌组合。在进第一张牌之前,必须放到桌面示众。泸州地区叫一垅。
  6. 一句话:砌牌后,手中的牌依据规则组合成相连的三张,比如小四、五、六,称为一句话。另外二、七、十组合也称为一句话。泸州地区叫一列
  7. 绞牌:当1对大牌与1张相同的小牌,或者1对小牌与1张相同的大牌组合时,成为绞牌。如1对小九与1张大玖。

跑胡子从胡牌算法上跟麻将有许多相似之处,但比一般麻将规则更复杂一些:

1.几组牌(三张一组)+将(一对),跑胡子可以没将
2.都有:一句话(顺子)、提(杠)、坎(碰)、对(将),而跑胡子多一种绞牌及二七十特殊牌组
3.跑胡子还有最小胡息、翻数、红黑数等更复杂的算分逻辑

再讲讲回溯算法

  • 回溯算法,在我看来是一种用递归方式穷举所有解的算法,写的差的回溯算法跟穷举方法的效率差不多,甚至更差(代码可读性差、递归占用较多堆栈、更容易出错),但好的回溯算法结合了优秀的”截枝逻辑”,可以使算法效率提升非常多倍的同时,还能得到所有需要的解。总的来,当你想得到一种、多种甚至所有解的时候,使用穷举效率又太慢,这时回溯算法就是很好的选择。
  • 跑胡子,就很适合用回溯法求解,一是因为当它有赖子牌(万能牌)时,会出现很多种不同的解。二是由于它复杂的算分系统。让求最优解(得分最高)成为一件较难的问题。
  • 已实现c++版跑胡子胡牌算法,因算分规则复杂多变,本算法并不返回一个最优解,而是得到其中一个或所有解(指定最小胡息)。效率经测试:1ms以内。 https://github.com/pinorr/RunHuZi
  • 还实现了十三水的求所有解的算法,以后再分享吧~

跑胡子胡牌算法(带赖子、基于回溯算法)相关推荐

  1. 跑胡子c语言算法,跑胡子胡牌算法Java版(带赖子、基于回溯算法)

    跑胡子规则 跑胡子,小写"一"到"十"各4张共40张,大写"壹"到"拾"各4张共40张. 砌牌:跑胡子为3人同玩,庄家砌 ...

  2. 带赖子的麻将胡牌算法Java_带赖子的超高效麻将、跑胡子胡牌算法

    文档 github地址 https://github.com/yuanfengyun/qipai/tree/master/doc lua版 https://github.com/yuanfengyun ...

  3. 带赖子的超高效麻将、跑胡子胡牌算法

    腾讯课堂视频讲解:https://ke.qq.com/course/305608?tuin=104cb0e2 文档 github地址 https://github.com/yuanfengyun/qi ...

  4. 跑胡子c语言算法,跑胡子胡牌算法

    1. 基于查表的lua版跑胡子判胡算法 将所有能胡的牌型和其对应的胡息放入表中 判断胡牌时,只需要查表得到胡息,如果表中没有此项,则不能胡,如果有,得到表中的胡息,加上跑.提.碰.偎的胡息,如果大于最 ...

  5. 麻将胡牌算法带癞子 python实现

    姐姐:你去帮我和闺蜜打麻将? 学霸哥哥:可是我不会打麻将呀! 姐姐:你不是学霸吗?我教你一个麻将公式,我闺蜜可是单身哟! 学霸哥哥:什么公式? 姐姐:麻将胡牌公式: AAA*M+ABC*N+BB,WM ...

  6. 基于回溯算法的排班问题求解

    基于回溯算法的排班问题求解 @[TOC](基于回溯算法的排班问题求解) 前言 一.排班问题抽象 二.回溯算法具体实现 1.函数主体 2.列元素求和 3.回溯算法 4.回溯算法出口函数 总结 前言 排班 ...

  7. 带赖子的麻将胡牌算法Java_有人讨论下麻将胡牌,出牌算法吗,求思路

    前段时间学会了打麻将,觉得老祖宗的智慧真的博大精深,很好玩,食胡的时候真兴奋啊,于是空余时间就想自己写个麻将游戏出来,模仿欢乐麻将那种,数学差,想了两个礼拜才想出一个胡牌算法,前段时间学会了打麻将. ...

  8. C++带赖子的麻将听牌检测算法实现

    #include <iostream> #include <vector> #include <set> #include <algorithm>enu ...

  9. 一篇带你搞透回溯算法

    回溯算法应用场合 回溯算法和递归算法一般同时出现,一般递归算法的下面就是回溯的逻辑. 一般说递归函数,其实就是回溯函数.回溯一般不会单独出现. 回溯法其实是一个纯暴力的搜索算法.有些问题用for循环搜 ...

最新文章

  1. 【小白学PyTorch】4.构建模型三要素与权重初始化
  2. 推荐8个轻巧强大的办公工具,高效实用,不容错过
  3. spacy如何安装最匹配的版本正规文档en_core_web
  4. WLC HA-维护模式(Maintenance Mode)
  5. RHEL7.0系统相关配置
  6. mysql数据库云读取_云数据库 MySQL版
  7. Python_正则表达式入门(实例讲解)
  8. AnnotationConfigApplicationContext ad has not been refreshed yet 错误
  9. 如何通过ssh登录linux,如何用SSH登录linux?
  10. 时序图与状态图(Rose) - Windows XP经典软件系列
  11. MATLAB绘制奈奎斯特图:nyquist命令
  12. Android 手机开机密码破解锁定
  13. SSR(服务端渲染)
  14. 使用代理爬去微信公众号_微信公众号怎么去推广运营?企业微信公众号要如何运营?微信公众号运营技巧,你get了吗?微信怎么去推广运营?...
  15. android P OTA 初探 —— 1、OTA简单介绍
  16. SPSS案例分析3:因子分析
  17. 2021/12/01学习总结
  18. 5分钟学会撤池子 薄饼pancakeswap教程 撤销流通池图文课程
  19. KNIME服务器安装配置
  20. 1271:【例9.15】潜水员

热门文章

  1. php连接mysql 1045_连接mysql报1045错误怎么办
  2. 异型烟分拣 机器人_AGV自动备货模式在烟草商业分拣中心的应用
  3. java enumerator_java 中遍历取值异常(Hashtable Enumerator)解决办法
  4. 架构师内功心法-----手写springv2.0mvc
  5. 什么样的场景看不到反而更精彩?_数字体验_新浪博客
  6. 高并发场景的几种处理方法
  7. 初入算法———高斯算法
  8. bootstrap validator简单非空校验(data-bv-notempty)
  9. 【观察】安超OS的“一小步”,中国云的“一大步”
  10. CSS/HTML | 溢出滚动内容显示不全问题