作者ownlai (旺来)
站内Prob_Solve
标题[问题] 7张牌选5张最强牌的演算法
时间Fri May 3 21:14:20 2013
最近在研究德州扑克的游戏
如果已经知道七张牌以後
要怎麽快速找到最好的五张牌组合
目前看到别人的作法是分21组的五张牌
分别判断21组後再选出最好的1组
不过应该有办法不需要分21组
直接用7张下去判断又比较简单的做法吧
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.165.127.195
1F:推 isnoneval:你想要的是人脑用的演算法吗? XD 05/03 21:19
2F:推 LPH66:对电脑来说直接叫它暴力试 21 组会比用"人脑演算法"还快 05/03 21:21
分21组一定会比较快吗?@@
5张牌判断的演算法
应该也要先判断 是否同花 是否顺子
都不是的话再计算有那些点数重复的 来判断是铁支 葫芦 三条 两对 一对 或散牌
之後这21组还要彼此比较
有2组以上同样是最大牌型的时候还要判断哪一组大
7张牌判断的演算法
目前我想法也是先判断 是否同花 是否顺子
因为有同花或顺子的话最多只会有三条
三条又比同花跟顺子小
所以一样没同花没顺子才再来判断有哪些点数重复
然後来判断 是铁支 三条 两对 一对 或散牌
这样判断出来可以直接知道最大牌是哪五张
但是感觉七张牌要判断顺子跟五张牌比起来会比较麻烦一点
目前想到方法是先排序後
再跟隔壁的取差额 如果差额有4个以上是1就是顺子 (A2345要特例判断)
另外七张要判断同花顺也比较麻烦一点
不知道有没有大大有其他更好的做法
※ 编辑: ownlai 来自: 1.165.127.195 (05/03 21:52)
3F:推 rebaudiana:Keep it simple stupid. 05/03 23:47
4F:推 isnoneval:对电脑都是 O(1) 啊 XD 05/04 15:52
5F:→ isnoneval:对人脑你要考虑的主要是方便执行, 中间暂存的变数要少吧 05/04 15:53