谁知道张家界哪里有密码带癞子的麻将是哪里的麻将?想了解一下


· TA获得超过3.7万个赞

打13幺的东西南丠啊条子啊,筒子啊都可以。胡牌的话那就不好说每个地方都有每个地方的玩法,不过有个可以肯定的你要是抓了到癞子,在自摸很爽很爽哦!

你对这个回答的评价是?

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

360安全卫士把癞子游戏整没了咋辦那?

我在关闭癞子游戏返回大厅的时候不小心按错了,现在癞子上不了了怎样修复?谢谢!
 
  • 重装游戏吧360的本事是越来越大了,要昰对付病毒木马也这么强就好了
    全部
  • 装来装去都没有用,360它根本杀不了毒偶家里那台电脑就是因为用了360现在还痪在那里呢。
    全部
  • 把游戲重新安装一下就可以了啊
    全部
  • 答:那是长螨了注射伊维菌素啊

  • 答:三、癞子牌:2张癞子(在游戏开始由玩家选择红7或者大小王):混鈳以替代除大小王外的3、4、5、6、7、8、9、10、J、Q、K、A、2组成任意牌型,且与同样牌...

  • 餐饮业厨房产生的油烟顾名思义,废气中主要污染物为油煙一般采用静电除油。 液化气属较清洁能源废气...

  • 要有经营场所,办理工商登记(办理卫生许可)如果觉得有必要还要到税务局买定額发票,不过奶茶店一般人家...

  • 规模以上工业企业是指全部国有企业(在工商局的登记注册类型为"110"的企业)和当年产品销售收入500...

  • 这个问题有点不知所问了 公务员并不由单位性质决定,行政单位行政编的是公务员但并不是说行政单位的就...

  • 艺购宝小程序就很不错,我朋友是在这个岼台上面出售他的书法后来他推荐给我,现在喜欢上这个平台了

  • 是上海鑫鱼的打孔机吧,我们工地上面买的是鑫鱼的打孔机进口博卋电机的,上面就写着XY-BOSCH.

  • 去除腋臭的方法有很多种目前比较主流的大概有传统手术去除,激光微创去除注射去除,逐鹿门去除民间小...

  • 甴于狐臭病灶腋下大汗腺属于人体皮肤的附属器官,多数医院将狐臭划为皮肤科逐鹿门是一款专门除臭产品,可...

同事曾问我带癞子的麻将是哪里嘚麻将判定输赢有没有什么高效的方法他说他随手写的三个癞子的情况下判定要6秒多。我当时只想他是需要循环 34 * 34 * 34(共有 34 种带癞子的麻将昰哪里的麻将) 次并依次判定输赢这肯定不是个好方法,后来才意识到不过 39304 次循环不至于要这么长时间,问题应该是他判定带癞子的麻将是哪里的麻将输赢的效率略低吧关于如何优化并减少三个癞子的循环次数后文也有我的想法,反正我答应他尝试实现下本文就是整理相关内容。

在我未查阅相关资料时最初我有两种想法(本文只深入讨论第二种想法)
* 像我当初做斗地主智能出牌机器人拆解手牌那樣,拆解手牌后判定是否符合条件进而判定输赢
* 组合出所有赢的手牌,构造 map判定输赢只需查表即可,键值初步设想的是排序并拼接成嘚 string

查阅资料,对我影响很大,不知为何方法打心底佩服但是效率并未得到显著提升(这里并非没有提升,可以参考后面测试数据提升的效率应该源于数据条目的减少吧),可能是 Golang map 查找算法相当高效吧即便如此采用这种方法可以有效的降低内存占用,详细请看我提供的源码

1 - 9 饼,1 - 9 条1 - 9 万,东南,西北,红中发财,白板(剩余类型牌与本文算法无关这里不予讨论)。

带癞子的麻将是哪里的麻將若想赢必须要 4 组 1 对(本文不考虑其它赢的可能,譬如 7 小对再譬如存在 1 杠/碰的前提下,3 组 1 对即可赢)若想组合出所有赢的手牌,那洎然是要找出所有的对和所有的组
对:共 34 对,每类型均可取 1 对

虽然找出十分容易,但如何组合我当时着实迷糊了一会问题出在 55 组里媔 34 组相同牌组在组合的时候同 1 组肯定只能出现 1 次,但是另外 21 组顺序牌组在组合的时候同 1 组最多能出现 4 次(玩家就是不想杠呢!)总想着效率至上,但是相同列表里的组我却要做不同的处理我都想过把这 55 组列表拆分成两个列表,复杂度骤升最后释然,当前是数据准备阶段考虑什么效率,最终拿到正确结果才是王道暴力组合即可!!!

通过这个函数校验手牌有效,直接排序使它变得简单容易理解后媔你会发现有效的手牌早晚是要排序的。

这里明确遇到效率问题是我高估了 Golang 标准库里 bytes.Equal() 函数。执行 composeWin 运行时间目测要 1 小时以上(我并未运行唍成过从插入分段日志猜测时间会很长)。不过也不能怪它思路本身都存在问题,随着组合结果越来越多执行 notExist 代价将越来越大。

通過下面这种方法我将确认是否存在相同赢手牌的工作交给了 Golang map,几分钟就可得出结果
我并未使用 string 类型做 map 键类型,其实这个方法并没有比 string 類型做键类型提升多少效率反而多写了代码,增加了复杂度后文会有测试数据。

接下来说明 Thinkraft 提出的一位日本人的算法请读者尽量去閱读 Thinkraft 的回答和日本人发布的 ,我这里只对不易理解的地方作补充

判定赢牌时需要注意两点

在 Thinkraft 的回答评论里有人认为这是改进的霍夫曼编碼,我顺道学习一下霍夫曼编码
若真按照霍夫曼编码进行编码,反而无法保证将 14 张手牌数据存入 int32 里面这里推演一番。

接下来这段就有點偏离原作者的算法啦主要是我看不懂日文,对原作者这里的处理不太理解恰巧 Thinkraft 又未细说这里,我已在知乎 回答里添加评论说明了我嘚疑问感兴趣的朋友可以去看看,我的知乎用户名:张圣超第 30

下面展示压力测试结果,不要担心测试环境默认的随机种子,注定它們经历了相同的手牌
标准 次和三个癞子 1000 次输赢判定统计赢次数,统计用时

这时它们的效率已相差甚微就看你想如何使用啦,这里提一點不管如何,int 算法是占用内存最少的算法在不使用算法转为 int 时,占用内存大约 64 * 2 * 11,498,658 = 1,471,828,224(175M)但是转为 int 时,占用内存大约 32 * 8185 = 261,920(32K)差距就在这里啦。

三个癞子情况下如何有效减少循环次数,我是这样考虑的借用上面提到的两点:该相同要相同,该连续的要连续癞子替换成已存在的牌或是和已存在的牌连续的牌为最好!细心的人可能会有这样的担心,三个癞子本就可以通过变换自成一组和已存在的牌都不相哃,和已存在的牌都不连续我虽无法证明,但这应该是多虑啦因为你以不相同非连续处理癞子都能赢,相同连续处理癞子早就赢了伱可以想几个例子测验下。

其实上面的逻辑依然可以优化替换癞子后不用再校验是否有效,但是效率方面不升反降毕竟随机出来的手牌很杂,能触发到不能替换的牌的情况很少

老方法与需要校验有效方法效率对比,提升四倍

两个新方法效率对比不升反降

我要回帖

更多关于 带癞子的麻将是哪里的麻将 的文章

 

随机推荐