智游城

标题: 专门回答各类扑克概率问题 [打印本页]

作者: Howard    时间: 2013-3-26 23:18
标题: 专门回答各类扑克概率问题
本帖最后由 Howard 于 2017-10-12 09:56 编辑

现正接触一个东东叫做Poker Query Language,这个东东专门为计算各种概率而设计。为了促使我自己多研究,欢迎大家询问各种牌桌上的概率问题。

问题可以包括Holdem,Omaha,甚至Stud。

举例:
1. 我手持TT,两个对手,底牌均不错,翻牌我不吃亏的概率是多少?
  回答:如果定义“底牌不错”为15%,不吃亏定义为 33%+ equity,答案是50.89%
【select count(equity(tens, flop) > 0.33) as decent_equity
from game="holdem", tens="TT", villainOne="15%", villainTwo="15%"】  

2. 9人桌,平均一手牌有多少人手里有AA/KK?
回答:0.08
【select avg(handshaving(inRange, "AA-KK")) as average_pair_count
from game="holdem", p1="**", p2="**", p3="**", p4="**", p5="**", p6="**", p7="**", p8="**", p9="**"】

3. flop三张全部在10以下的概率多大?
回答:22.31%
【select count(boardInRange("[9-][9-][9-]")) from game="holdem"】

4. Omaha HU,两人都是随机牌,赢家是nuts的可能性有多大?
回答:7.6%
【select count(nutHi(hero, river))
from game="omahahi", hero="****", villain="****"
where winsHi(hero) or tiesHi(hero)】


不会回答/回答不了的问题:
1. 预测手气、走势类的问题,如:我的下风期还有多久结束?我AA被干掉后这个session有多大可能输?
2. 需要假设对手属性的问题,比如,对手potsize AI,我3rd nuts怎么办?A9s枪口+1,怎么打EV最大?
3. 找扁型问题,比如,今天跟盖茨$10000-$20000 HU,赢了50000BB,最后一手AKo 他8bet AI,我怎么办?

disclaimer:
1. 不保证计算正确
2. 不保证及时回答


作者: dengxianqi    时间: 2013-3-26 23:44
能算hi-lo game不?
作者: 闷闷    时间: 2013-3-27 00:05
UTG 3BB raise, UTG+1 3BET 12BB,sb 4BET 25BB, FOLD, UTG+1 call, flop 3d 6s 7d, sb bet 3/5 pot, UTG+1 all in 460bb, SB hole cards Kh Kd, should he call
作者: zhaoyue0o0o    时间: 2013-3-27 00:09
我来 问。 有效筹码 40BB。  HERO BB。  UTG 3BB。 HERO  HAVE JJ。   UTG OPEN RANGE  12。 CALL RANGE 88+AQ+  我SHOVE + EV? 多少? 如果是 99 。 EV呢? TT呢? 这边 无脑 3BET/CALL ALLIN的RANGE?
作者: Howard    时间: 2013-3-27 00:18
dengxianqi 发表于 2013-3-26 09:44
能算hi-lo game不?

omoha hi-lo没问题

还能算stud hi-ho, 以及stud lo也就是Razz




作者: Howard    时间: 2013-3-27 00:21
闷闷 发表于 2013-3-26 10:05
UTG 3BB raise, UTG+1 3BET 12BB,sb 4BET 25BB, FOLD, UTG+1 call, flop 3d 6s 7d, sb bet 3/5 pot, UTG+1  ...

抱歉,你这属于不能回答的问题之第二类的典型例子

作者: Howard    时间: 2013-3-27 00:53
本帖最后由 Howard 于 2013-3-26 12:26 编辑
zhaoyue0o0o 发表于 2013-3-26 10:09
我来 问。 有效筹码 40BB。  HERO BB。  UTG 3BB。 HERO  HAVE JJ。   UTG OPEN RANGE  12。 CALL RANGE 88 ...

这个问题挺好,但是仍然得澄清几个不太明确的地方

1) utg open range 12   假设 top 12%
2) utg call range 88+AQ+  假设这是他call我们所有的raise的范围,下至miniraise,上至allin

先用个笨方法分步做吧,毕竟刚起步
1. UTG跟注的概率是多少?
select count(inrange(p2, "AA-88, AK-AQ")) as Opp_Call_Frenquency
from game = "holdem", p1 = "JJ", p2 = "12%"
答案:48.93%

2. Hero push,UTG跟注后,Hero equity多大?
select avg(equity(p1, river)) as HeroE
from game = "holdem", p1 = "JJ", p2 = "AA-88,AK-AQ"

答案:53%

3. Hero push的总EV分两部分,48.93%对手跟了死磕,其他时候hero白捡4BB(小盲0.5忽略):
48.93% * (80BB * 0.53 - 39BB) + (1-48.93% )*4BB = 3.70BB
弃牌EV=0

所以推了一定好于弃牌。


如果用一个大语句解决此问题,读起来就比较费劲了:
select avg(
           case
             when inRange(opponent, 'AA-88,AK-AQ')
             then ((4 + 39 + 37) * riverEquity(opponent)) - 37
             else 0
           end
        ) as OPPONENTNET_EV_CallPush,
       avg(
           case
             when inRange(opponent, 'AA-88,AK-AQ')
             then ((4 + 39 + 37)  * riverEquity(shover)) - 39
             else 4
           end
        ) as SHOVER_EV_Push,
       count(inRange(opponent, 'AA-88,AK-AQ')) as OPPONENT_Call_FREQUENCY

from game='holdem', syntax='Generic',
     shover='JJ',
     opponent='12%'

结果是
OPPONENTNET_EV_CALLPUSH 0.334BB
SHOVER_EV_PUSH 3.666BB   与3.70的上述结果基本吻合
OPPONENT_CALL_FREQUENCY 48.94%
作者: zhaoyue0o0o    时间: 2013-3-27 03:41
Howard 发表于 2013-3-27 00:53
这个问题挺好,但是仍然得澄清几个不太明确的地方

1) utg open range 12   假设 top 12%


上一题没经过 大脑。 o(╯□╰)o 见笑。 麻烦HOWARD 大侠了。
下面 出一个 对我来说比较有帮助的问题。
6MAX 。
大盲 位置。有效筹码 40BB
SB OPEN  百分之 70. CALL  3BET/ 4BET RANGE AQ+ 88+
OPEN 3BB

CALL RANGE。 88+ AQ+
HERO 无脑 3BET/ ALLIN RANGE ?
因为  他 R 3BB 我们 无脑 3BET 基本 已经 12BB 属于粘池范畴了。 我们假设 我们 3BET ALLIN 。
这里 我们 哪些牌 可以 无脑 3BET ALLIN?
列出 所有 RANGE。 假设我们 3BET 对手 4BET 我们就 CALL。

假设 2. 对手 OPEN 2BB。
我们 无脑  ALLIN RANGE?
这个 问题。。 我自己还没算。 但是 这几天 正在考虑。既然老师  摆场子。 我就写来给老师吧。

作者: Howard    时间: 2013-3-27 06:32
先挑出一些无关信息:
1. 6Max: 既然是sb vs bb,且对手range严格定义,跟几人桌无关
2. 我们3bet,对手4bet等:如果我们3bet 但不是AI,那就没法算了,因为要设定对手打法。我只能比较我们3bet AI 与fold之间。

现对手r 3BB,如果我们推,他接的概率是8.05%
select count(inrange(p2, "AA-88, AK-AQ")) as Opp_Call_Frenquency
from game = "holdem", p1 = "**", p2 = "70%"

设我们需要EV 为e才可以接招,则有:
8.05% * (e * 80 - 39) + (1-8.05%)*4 = 0
e = -0.083 = -8.3% <0

而我们任意底牌的ev均会大于零
故 我们push Any2的EV均好于fold。

原因是对手open太宽,接盘AI range又太窄。也就是说 he folds too damn much
作者: 7Sasuke    时间: 2013-3-27 10:14
POT 5W 楼主 second nuts3W, 对方raraise15W, 对方手中是nuts的概率是多大
作者: topaz    时间: 2013-3-27 10:29
本帖最后由 topaz 于 2013-3-27 10:32 编辑

前面4人limp Hero后位Ah9c raise到6BB 3个call pot25BB Hero剩余筹码75BB
flop Jh6h2h 前位bet 25BB 2个扔 假设前位call with top 20%, bet with 顶对以上(顶对,set,天同花,top20%应该没两对)
Hero策略选择: 1.fold
                     2.call 25 BB turn发同花或A all in50BB 前位在发同花时会fold没同花的手牌 call其余 发A 100% call
                     3.call turn发同花 all in50BB 前位会fold没同花的手牌 call其余
                     4. all in 75 BB 前位AJ及以上call,J和红桃kicker也call 其余fold
请问这4种策略的ev(2,3没发出来的时候假设对手必定bet hero fold)
作者: 梁少    时间: 2013-3-27 11:28
翻牌3张成花、3张顺子的概率是多少?

作者: dengxianqi    时间: 2013-3-27 16:37
梁少 发表于 2013-3-27 11:28
翻牌3张成花、3张顺子的概率是多少?

翻牌三张同花的组合数: C(13,3) * 4
概率则为:C(13,3)*4/C(52,3) = 5.18%

如果自己手里有两张同花牌,翻牌直中flush,flop的组合数: C(11,3)
概率则为: C(11,3)/C(50,3) = 0.84%

翻牌三张rundown的顺子组合数: C(4,1)*C(4,1)*C(4,1)*12
概率则为:C(4,1)*C(4,1)*C(4,1)*12/C(52,3) = 3.48%

如果自己手里是两张相连的牌,翻牌直中天顺的话,要分情况:

JT 往下一直到 54,直中天顺的flop的组合数:  C(4,1)*C(4,1)*C(4,1)*4
概率则为: C(4,1)*C(4,1)*C(4,1)*4 / C(50,3) = 1.31%

QJ和43, 直中天顺的flop的组合数:  C(4,1)*C(4,1)*C(4,1)*3
概率则为: C(4,1)*C(4,1)*C(4,1)*3 / C(50,3) = 0.98%

KQ和32,直中天顺的flop的组合数:  C(4,1)*C(4,1)*C(4,1)*2
概率则为: C(4,1)*C(4,1)*C(4,1)*2 / C(50,3) =0.65%

AK和A2,直中天顺的flop的组合数:  C(4,1)*C(4,1)*C(4,1)
概率则为: C(4,1)*C(4,1)*C(4,1) / C(50,3) = 0.33%

作者: 梁少    时间: 2013-3-27 16:40
dengxianqi 发表于 2013-3-27 16:37
翻牌三张同花的组合数: C(13,3) * 4
概率则为:C(13,3)*4/C(52,3) = 5.18%

谢谢,十分详细。{:soso_e113:}

作者: Howard    时间: 2013-3-27 21:06
梁少 发表于 2013-3-26 21:28
翻牌3张成花、3张顺子的概率是多少?

老邓算了一下,正好可以跟他相互验证。

任意两张牌翻牌成顺子、成花的概率:顺子0.4%, 同花0.2%
select count( flopHandCategory(hero)=flopstraight) as Any2_FlopStraight,
       count( flopHandCategory(hero)=flopflush) as Any2_FlopFlush
from game = 'holdem', hero = '**'

但只有两张比较靠近的牌才有可能翻牌顺子,两张同花牌才能翻牌同花。
连牌翻牌出顺子:1.31%;同花牌翻牌出花:0.83%
select count( flopHandCategory(hero)=flopstraight) as Connector_FlopStraight,
       count( flopHandCategory(hero)=flopflush) as Suited_FlopFlush
from game = 'holdem', hero = '5s4s'

一隔断的牌翻牌顺子(or QJ/43):0.97%
select count( flopHandCategory(hero)=flopstraight) as OneGapper_FlopStraight
from game = 'holdem', hero = '75'

两隔断的牌翻牌顺子(or KQ/32):0.65%
select count( flopHandCategory(hero)=flopstraight) as TwoGapper_FlopStraight
from game = 'holdem', hero = '85'

三隔断的牌翻牌顺子(or AK/A2):0.32%
select count( flopHandCategory(hero)=flopstraight) as TwoGapper_FlopStraight
from game = 'holdem', hero = '95'


与老邓的数据基本一致。细微差别是因为我的trail数目太低只有60万,造成一点误差。如要精确以老邓的答案为准。


作者: Howard    时间: 2013-3-27 21:10
7Sasuke 发表于 2013-3-26 20:14
POT 5W 楼主 second nuts3W, 对方raraise15W, 对方手中是nuts的概率是多大

此对手如果是dengxianqi,nuts概率100%;如果是yyy6,nuts概率1%
您这也属于无法计算的第二类

作者: dengxianqi    时间: 2013-3-27 21:23
Howard 发表于 2013-3-27 21:10
此对手如果是dengxianqi,nuts概率100%;如果是yyy6,nuts概率1%
您这也属于无法计算的第二类
...

咳咳…………

上次有个类似的情况,清都拿着second nuts,我把他推了,结果他没想太久就call了。

可惜,我不是nuts。

作者: Howard    时间: 2013-3-27 22:19
本帖最后由 Howard 于 2013-3-27 16:16 编辑

回复11楼的问题:
前面4人limp Hero后位Ah9c raise到6BB 3个call pot25BB Hero剩余筹码75BB
flop Jh6h2h 前位bet 25BB 2个扔 假设前位call with top 20%, bet with 顶对以上(顶对,set,天同花,top20%应该没两对)
Hero策略选择: 1.fold
                     2.call 25 BB turn发同花或A all in50BB 前位在发同花时会fold没同花的手牌 call其余 发A 100% call
                     3.call turn发同花 all in50BB 前位会fold没同花的手牌 call其余
                     4. all in 75 BB 前位AJ及以上call,J和红桃kicker也call 其余fold
请问这4种策略的ev(2,3没发出来的时候假设对手必定bet hero fold)


先谢谢你把问题描述这么好,足够达到可计算的标准。
1. fold EV=0。锅里死钱不算咱的。

2. 好复杂,不过终于写出来了。结果是 -4.0BB。还不如fold。

select avg(         case
         when turnCard() = toCard('As') or turnCard() = toCard('Ac') or turnCard() = toCard('Ad')  then RiverEquity(hero)*175 - 75
         when turnCard() = toCard('3h') or turnCard() = toCard('4h') or turnCard() = toCard('5h') or turnCard() = toCard('7h') or turnCard() = toCard('8h') or turnCard() = toCard('9h') or turnCard() = toCard('Th') or turnCard() = toCard('Qh') or turnCard() = toCard('Kh') then
               case
               when InRange(opp,'h') then RiverEquity(hero)*175 - 75
               else 25+25
               end
         else -25
         end
          ) as Option2_EV
from game = 'holdem', hero = 'Ah9c', opp='20%', board = 'Jh6h2h'
where (flopHandCategory(opp)>=floptoppair)


3. 与2有什么区别吗?还是这句话没写完?

4. 比2写起来简单多了。结果:15.52BB 怎么这么高?
select avg(
         case
         when InRange(opp, 'hh,AxJx,AA-JJ,66,22,J6,J2,62,Jx*h') then riverEquity(hero)*175-75
         else 25+25
         end
          ) as Option4_EV
from game = 'holdem', hero = 'Ah9c', opp='20%', board = 'Jh6h2h'
where (flopHandCategory(opp)>=floptoppair)



作者: topaz    时间: 2013-3-27 22:50
本帖最后由 topaz 于 2013-3-27 22:58 编辑
Howard 发表于 2013-3-27 22:19
回复11楼的问题:
前面4人limp Hero后位Ah9c raise到6BB 3个call pot25BB Hero剩余筹码75BB
flop Jh6h2h 前 ...

3和2的区别就是中了pair A不认为自己领先继续fold,因为感觉range里顶对并不多?

all in ev正这么多确实很怪啊 对方bet都是成牌 只有打顶对胜率接近50% 其他的都落后不少,不过大多顶对设定为fold了,这些占了绝大部分?


作者: Howard    时间: 2013-3-27 23:10
本帖最后由 Howard 于 2013-3-27 09:20 编辑

3. 的EV=-8.2BB,还不如2。

select avg(case
         when turnCard() = toCard('3h') or turnCard() = toCard('4h') or turnCard() = toCard('5h') or turnCard() = toCard('7h') or turnCard() = toCard('8h') or turnCard() = toCard('9h') or turnCard() = toCard('Th') or turnCard() = toCard('Qh') or turnCard() = toCard('Kh') then
               case
               when InRange(opp,'h') then RiverEquity(hero)*175 - 75
               else 25+25
               end
         else -25
         end
          ) as Option3_EV
from game = 'holdem', hero = 'Ah9c', opp='20%', board = 'Jh6h2h'
where (flopHandCategory(opp)>=floptoppair)

为何3和2这么低,而4 push这么高
因为3和2在跟注25BB(剩余筹码的三分之一)之后,大多数情况都在转弃牌了。2的弃牌率四分之三,3的弃牌率高达至少五分之四,那根本不可能+EV,更何况转出红桃自己也不是100%(对手葫芦)

而option4的全进,导致对手投入有效筹码三分之一后大规模弃牌。他的跟注率56.7%,弃牌率接近一半:
select count (InRange(opp, 'hh,AA-JJ,66,22,J6,J2,62,AxJx,Jx*h')) as Option4_Opp_Call_Frequency
from game = 'holdem', hero = 'Ah9c', opp='20%', board = 'Jh6h2h'
where (flopHandCategory(opp)>=floptoppair)

作者: Howard    时间: 2013-3-27 23:20
本帖最后由 Howard 于 2013-3-27 09:28 编辑

Option4的计算有个错误,刚在原文修正了一下:“对手flop牌力在AJ以上” 我忽略了超对AA-QQ。

这几手牌比重还是挺大的,因此结果有一些变化,但不影响结论。抱歉了topaz。
作者: Howard    时间: 2013-3-27 23:26
topaz的这个例子让我学到不少东西。谢谢

所写的PQL句子看着很臃肿,主要原因是对“turncard 出红桃” 的表达问题,我暂时没找到更简洁一些的办法,只能一一列举。如果这儿能像range一样有简写,那整个句子就很优雅了
作者: Howard    时间: 2013-3-28 06:15
Howard 发表于 2013-3-27 09:26
topaz的这个例子让我学到不少东西。谢谢

所写的PQL句子看着很臃肿,主要原因是对“turncard 出红桃” 的表 ...

“turn A" 和 “turn出红桃”的简洁表示办法找到了:boardInRange('***A')  boardInRange('hhhh')

用此语句重新书写topaz朋友的第二问和第三问。

option2:

select avg(
         case
         when boardInRange('***A')  then RiverEquity(hero)*175 - 75
         when boardInRange('hhhh')  then
               case
               when InRange(opp,'h') then RiverEquity(hero)*175 - 75
               else 25+25
               end
         else -25
         end
          ) as Option2_EV
from game = 'holdem', hero = 'Ah9c', opp='20%', board = 'Jh6h2h'
where (flopHandCategory(opp)>=floptoppair)

计算结果是-4.0BB 与前述一致


Option3:
select avg(case
         when boardInRange('hhhh') then
               case
               when InRange(opp,'h') then RiverEquity(hero)*175 - 75
               else 25+25
               end
         else -25
         end
          ) as Option3_EV
from game = 'holdem', hero = 'Ah9c', opp='20%', board = 'Jh6h2h'
where (flopHandCategory(opp)>=floptoppair)

计算结果-8.3BB,与前述基本一致
作者: topaz    时间: 2013-3-28 08:43
多谢howards解答,另外问个基本问题:top20%起手range到哪了

实际这把牌我推all in撞到set6上了,也没抽中,只知道对手肯定不是bluff 也比较紧
作者: dengxianqi    时间: 2013-3-28 09:00
topaz 发表于 2013-3-28 08:43
多谢howards解答,另外问个基本问题:top20%起手range到哪了

实际这把牌我推all in撞到set6上了,也没抽中 ...

建议下载一个pokerstove。
前n%的牌到哪里,全部一目了然

作者: 7Sasuke    时间: 2013-3-28 10:27
问几个简单的我在牌桌上遇到但自己不会算胜率的牌型吧
flop783
甲 AK  乙78
甲乙flop  ALLIN 各自的胜率在多少
作者: 7Sasuke    时间: 2013-3-28 10:30
flop783
甲AK
乙77
甲乙胜率各自是多少

作者: 7Sasuke    时间: 2013-3-28 10:37
flop783
甲AK
乙9T
甲乙双方胜率
作者: 7Sasuke    时间: 2013-3-28 10:38
flop783
甲AK
34
甲乙双方胜率
作者: 7Sasuke    时间: 2013-3-28 10:40
flop784
甲AK
乙45
甲乙胜率各多少
作者: 7Sasuke    时间: 2013-3-28 10:42
比如我简单的有多少张outs能赢,这个我会算,但是中间加上变量,就是我有outs,对方也有outs,这时候我就不会算了
作者: 7Sasuke    时间: 2013-3-28 10:44
尤其像29楼那种 变化挺多 的,比如在turn上发出5river上再发出6就是乙赢了,这个怎么算进去
作者: topaz    时间: 2013-3-28 10:59
dengxianqi 发表于 2013-3-28 09:00
建议下载一个pokerstove。
前n%的牌到哪里,全部一目了然

看了一下20% 还中的牌只有JJ 66 AA KK QQ AJ KJ QJ TJ 9Js 其他天flush
这里面KJ QJ TJ 9Js没红桃原来还占了不少,弃牌率还是有的

作者: topaz    时间: 2013-3-28 11:02
不过pokerstove给的是面对any2 allin胜率的排名?
50%没有22有j4s...和实际差距还是挺大的,还是howards那个成一定牌力的概率好多了
作者: dengxianqi    时间: 2013-3-28 11:22
topaz 发表于 2013-3-28 11:02
不过pokerstove给的是面对any2 allin胜率的排名?
50%没有22有j4s...和实际差距还是挺大的,还是howards那 ...

pokerstove给的是面对 3家 any2时的equty排名。

这玩意儿,绝大多数人都在用,和实际的差距应该说比较小。

作者: notch    时间: 2013-3-28 15:58
dengxianqi 发表于 2013-3-28 09:00
建议下载一个pokerstove。
前n%的牌到哪里,全部一目了然

我想我们有一个默认的top n%的排名
但在每一个特定的玩家那里,是否会有轻微的差异呢?
比如tjo对t9s,有些玩家可能会更喜欢t9s,某些可能相反

这些差异会不会影响最后的计算呢?
作者: topaz    时间: 2013-3-28 16:04
notch 发表于 2013-3-28 15:58
我想我们有一个默认的top n%的排名
但在每一个特定的玩家那里,是否会有轻微的差异呢?
比如tjo对t9s,有 ...

特定玩家经常巨大差异,不过我说的是实战中22效果远比j4s好,但是这个标准下22不如j4s
作者: dengxianqi    时间: 2013-3-28 20:32
notch 发表于 2013-3-28 15:58
我想我们有一个默认的top n%的排名
但在每一个特定的玩家那里,是否会有轻微的差异呢?
比如tjo对t9s,有 ...

我觉得这个问题可以这样理解:
因为我们不知道对手的20%入池的牌具体是如何分布,
那我们如果对于所有的入池20%的对手都定义成top 20%的牌,
应该来说整体的偏差会比较小。

随着对某具体对手的了解加深,应该可以修正,
或者对某个级别的某些对手的共性有了了解,也可以修正。
比如我看Galfond一个视频里,他看到在某个NL1000 6max的桌上,
某人在BB 3bet CO的数字是10(具体多少不记得了,反正是某个不超过10的偏大的数),
他给人定的range就不是top 10%,而是强牌加上一些SC和一些同花一间隔。

作者: Howard    时间: 2013-3-28 21:21
本帖最后由 Howard 于 2013-3-28 07:28 编辑
dengxianqi 发表于 2013-3-28 06:32
我觉得这个问题可以这样理解:
因为我们不知道对手的20%入池的牌具体是如何分布,
那我们如果对于所有的 ...

老邓的回答很赞,基本上把我想说的说出来了。对所有玩家都使用同样的range,是偏差最小的做法。

某个玩家的open range,不光与玩家性格有关,与其他的很多因素也相关。
比如:fullring or 6Max? 位置? 筹码深度?该玩家心情?是否刚刚入局还是快走了?等等

如果按照每个因素都细分并给出一个排名,那这一个特定玩家身上的排名就有几百万种,根本没法弄。

所以,应该采用中学物理的分析方式:假设光滑平面、无空气阻力、无热能损耗、密闭空间等等理想状态。
如果你能给出此玩家的20%是哪些牌,尽管给出,我就按照你的20%名单计算,这没问题。

如果给不出,最现实的方式仍然是按照软件设定的统一排名。

老邓已经说了,流行软件pokerstove的排名,是按照该手牌 vs 两手(or三手?记不清了)随机牌的RiverEquity来排名的。这样兼顾了HU和multiway的情况。

我使用的OddsOracle,排名是这样的【非细节狂请跳过】:
1. Holdem内有五种排名,分别是:10-handed | 6-handed | 3-handed | vs random hand | equity squared
2. 如无特殊说明,默认使用第一种 10-handed
3. 具体排名的方式如下(如无耐心千万别看):
   1)发给hero待研究的牌,比如AKs;Hero向锅里投入1单位筹码;
   2)发给Player2一手纯随机牌;同时Player2向锅里投入1单位筹码(此为模拟实际大盲)
   3)发另外8手随机牌,如果这手随机牌是“好牌”(定义见后),则投入1单位筹码;如果不是“好牌”,则弃牌;
   4)发公牌,并把锅给赢家
   “好牌”的定义是平均能从锅里拿回超过1单位筹码的牌。可见定义好牌的过程需要用到好牌的定义,所以上述1-4步必须经过很多次迭代计算才能得出最后排名。第一次迭代时,所有牌都是好牌。随着迭代深入,“好牌”急速缩减。

经过这样迭代之后,holdem 10-handed的好牌是13%左右的起手牌。

因为方法不同,起手牌排名与pokerstove中也有非常细微的差异。具体排名见下贴。

作者: Howard    时间: 2013-3-28 21:27
Odds Oracle使用的10-handed起手牌排名:
AA
KK
QQ
JJ
(AK)
TT
AK
(AQ)
99
(AJ)
AQ
88
(AT)
(KQ)
AJ
77
(KJ)
(QJ)
(KT)
KQ
(A9)
AT
66
(A8)
(QT)
(JT)
KJ
(A7)
(A5)
(K9)
(A4)
(A6)
55
(Q9)
(A3)
(J9)
KT
QJ
A9
(T9)
(K8)
(A2)
(K7)
44
A8
QT
(Q8)
JT
(J8)
(K6)
(98)
(T8)
(K5)
A7
(K4)
K9
A5
33
(K3)
A4
Q9
(87)
(Q7)
(T7)
(Q6)
(K2)
(J7)
A6
(97)
(Q5)
A3
J9
T9
22
K8
A2
(Q4)
(76)
K7
(86)
(96)
(J6)
(J5)
K6
(Q3)
(Q2)
(T6)
(65)
K5
(75)
Q8
(54)
J8
(J4)
T8
98
(85)
(95)
K4
(J3)
(64)
(T4)
(T5)
87
Q7
K3
(J2)
(74)
97
J7
(53)
Q6
(T3)
K2
(94)
T7
(84)
(43)
(63)
Q5
86
(T2)
(93)
76
Q4
(92)
96
(73)
J6
Q3
(52)
65
J5
T6
(82)
(42)
(83)
Q2
75
54
J4
(62)
85
(32)
95
(72)
J3
T5
T4
64
J2
53
74
84
T3
43
94
T2
93
63
92
73
52
42
83
82
62
32
72

作者: Howard    时间: 2013-3-28 21:39
7Sasuke 朋友的这些计算问题,都是标准Equity计算,乃是pokerstove或其他任何odds calculator最擅长干的。用PQL语句反而是舍近求远,体现不出长处

仅回答1个,其余的就不弄了,抱歉。
783 甲AK 乙78

select avg(riverEquity(p1)) as P1, avg(riverEquity(p2)) as P2
from game='holdem', board='7c8c3s', p1='AcKc', p2 = '7h8h'

结果:P1: 35%; P2: 65%
作者: Howard    时间: 2013-3-28 21:41
7Sasuke 发表于 2013-3-27 20:44
尤其像29楼那种 变化挺多 的,比如在turn上发出5river上再发出6就是乙赢了,这个怎么算进去 ...

具体数学算法是很复杂的,要考虑几十几百种情况。

软件都是大量随机模拟

作者: riverismyfriend    时间: 2013-3-29 07:44
dengxianqi 发表于 2013-3-28 20:32
我觉得这个问题可以这样理解:
因为我们不知道对手的20%入池的牌具体是如何分布,
那我们如果对于所有的 ...

嗯,如果要是很严肃地进行这种range的计算的话,最好自己抽时间写几个固定的range出来备用。

现在大多数敌人的3bet range都相对polarized,所以用top x%肯定是有偏差的。




作者: 7Sasuke    时间: 2013-3-29 09:21
Howard 发表于 2013-3-28 21:41
具体数学算法是很复杂的,要考虑几十几百种情况。

软件都是大量随机模拟

谢谢版主,辛苦啦!~

作者: topaz    时间: 2013-3-29 10:32
40楼howards贴的那个扫了一遍 似乎更科学一点
作者: dengxianqi    时间: 2013-3-29 21:35
riverismyfriend 发表于 2013-3-29 07:44
嗯,如果要是很严肃地进行这种range的计算的话,最好自己抽时间写几个固定的range出来备用。

现在大多数 ...

嗯,关于极化和非极化这点,估计网络牌手更有经验了。



作者: notch    时间: 2013-3-30 19:24
假设flop 9d8d3d,对手raise 0.9w后 锅底3w,hero拿着99 all-in 4.5w,对手还需要3.6w to call
因为对手是raiser,所以不可能是随机牌
假设对手持有TT-AA,88,33,89,93,83,tj,t7,67,9x,xdyd,Adx
在hero push以后fold TT-AA中不带方块的,9x中x<A (x不等于9,8,3)且x不为方块的,
跟入其它牌
hero的ev是多少呢?
作者: notch    时间: 2013-3-30 19:39
假设9人桌,hero持KQo在sb,有效筹码100bb
utg+2 limp,co call, btn call
因为前3位都是limper,所以把他们的range放在22-JJ,54s-KQs,65o-KQo,46s-KJs,A2o-AQo,A2s-AJs,K9s,KTs,KTo。
如果bb持QQ+,AK+,则raise,(这情况下hero fold),否则check
问hero call的ev是多少
作者: notch    时间: 2013-3-30 19:50
本帖最后由 notch 于 2013-3-30 19:52 编辑

同上例中各人的牌面,hero持KQo在sb call,bb check,锅底5bb
hero在flop牌面出K或者Q,且没有A,没有三花的情况下(这样子的board有多少?)all-in 剩余的99bb
其余4人在确定领先的情况下(两对+)跟入,否则fold
hero在AJT无花牌面下all-in,其余人除拿KQ外弃牌
hero在JT9无花牌面下all-in,会有人拿78 call
hero在其余的牌面下无条件fold

问在这样子的打法下,hero的ev?

作者: Howard    时间: 2013-3-31 09:30
notch 发表于 2013-3-30 05:24
假设flop 9d8d3d,对手raise 0.9w后 锅底3w,hero拿着99 all-in 4.5w,对手还需要3.6w to call
因为对手是r ...

Hero EV = +2.48w

PQL语句为:
select avg(case  when inRange(p2,'TT-AA!xd,9R!9A, 9R!9Rd')   
                 then 3               

           else riverEquity(hero)*(3+4.5+3.6)-4.5           
           end)
from game = 'holdem', hero='99', p2='TT-AA,88,33,89,93,83,JT,T7,67,9R,dd,AdR', board = '9d8d3d'

解释如下:
游戏:Texas Holdem
Hero底牌:99
唯一对手的底牌(在他r 0.9W之后):'TT-AA,88,33,89,93,83,JT,T7,67,9R,dd,AdR'  (R相当于*)
flop:9d8d3d

当对手的牌(仍然在以上范围内)满足以下范围时他会弃牌给我们的4.5W全进:
TT-AA且无d,9R但不包括9A、9+方片
此时我们EV为底锅3W;
当对手的牌在第一个范围内,第二个范围外时,他会跟注,两人全进,新的底锅是3+4.5+3.6=11.1W,
我们的赢率是 riverEquity(hero)


作者: Howard    时间: 2013-3-31 09:50
本帖最后由 Howard 于 2013-3-30 19:54 编辑
notch 发表于 2013-3-30 05:39
假设9人桌,hero持KQo在sb,有效筹码100bb
utg+2 limp,co call, btn call
因为前3位都是limper,所以把他 ...

这个问题问的很成功。因为这种preflop multiway,而且ton postplop play尚未开始,几乎一定是无法解决的。但是notch问问题的方式,让这个问题变得基本可以解决。

但也只是基本可以解决,还差一点点。因为我无法知道KQo如果BB check之后,EV到底能有多大,即使知道有效筹码深度100BB。这里还是要取决于对手的打法和自己的打法。

我能做到的,只能是假定BB当真check放hero进锅看翻牌之后,每人再投入9BB,直接发到河牌比大小。锅里50BB。

PQL语句如下:
select avg(case  when inRange(BB,'QQ+, AK')   
                 then -1

           else Equity(hero, river)*50-1           
           end) as Hero_Limp_EV
from game = 'holdem', hero='KxQy',
     UTG2='JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     CO = 'JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     BTN= 'JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     BB = '**'

结果是+11.9BB (站在Hero limp preflop之前的角度。如果limp后BB加注,hero value为-1BB。)

但是这个结果肯定是过于乐观的,因为没考虑位置劣势,只是硬性比大小
作者: Howard    时间: 2013-3-31 10:46
notch 发表于 2013-3-30 05:50
同上例中各人的牌面,hero持KQo在sb call,bb check,锅底5bb
hero在flop牌面出K或者Q,且没有A,没有三花 ...

这道题超出我的水平,到到目前为止我还无法用比较简便的方法计算。问题出在打到河牌的玩家数目不固定。现在我还不会处理这类的问题,也许PQL语言本身都不能处理。

只能解决其中一个分问题:flop牌面出K或者Q,且没有A,没有三花(这样子的board有多少?)

select count(BoardinRange('K[K-][K-]!(xxx), Q[Q-][Q-]!(xxx)')) as KQo_Fav_Flop_Odds

from game= 'holdem', hero='KxQy',
     UTG2='JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     CO = 'JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     BTN= 'JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     BB = '**!(QQ+,AK)'


答案:27.64%

作者: Howard    时间: 2013-3-31 12:24
再深算一步,在BB check后,现在5人进翻牌,翻牌对KQo很友好:最高为K或者Q,且不是三花。

此时,四个对手中平均有几个人的牌型比我们更好?我们是顶对,也就是说他们有overpair或两对/set
结果是0.26个

注意此结果仅包括牌型比我们好,没包括顶对但踢脚比我们好的。

select avg(  handsHaving( minFlopHandCategory, flopoverpair)
           ) as how_many_better_hands_on_goodflop

from game= 'holdem', hero='KxQy',
     UTG2='JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     CO = 'JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     BTN= 'JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     BB = '**!(QQ+,AK)'
where BoardinRange('K[K-][K-]!(xxx), Q[Q-][Q-]!(xxx)')

结果:0.26
作者: Howard    时间: 2013-3-31 13:00
本帖最后由 Howard 于 2013-4-1 09:02 编辑

老邓@dengxianqi曾经说(大意):老货,弃掉的死牌我们多少能得到一些信息。比如里面含A的可能性最低,含K的可能性次之,。。。含2的可能性最高。能否将这些信息计算入内?

这个问题我着实想了一阵。首先死牌不能定义weighted range,其次,给某个对手设置range之后再计算hero equity时,该对手默认是参加竞争的。搞了好一阵,才发现他的Hand vs Perceived Range Equity函数可以解决这一问题。

例如:5人桌,我们在小盲。枪口、CO、纽扣均弃牌。我们的牌是KQo,求我们对大盲的equity。
大盲还没看牌,所以他是any2;
三位弃牌者,假设他们弃掉的牌满足以下特征:
1. 所有对子均不弃牌
2. AX概率40%弃牌,KX (K带小,下同) 45%,QX 50%,JX 55%,TX 60%,9X 65%,8X 70%,7X以及更小 75%

那么我们对大盲的equity 语句如下:

select avg(  hvPerceivedRangeEquity(hero,river,'**')
           ) as Herosb_vs_BB
from game= 'holdem', hero='KxQy',
muck1='A[K-]@40, K[Q-]@45, Q[J-]@50, J[T-]@55, T[9-]@60, 9[8-]@65, 8[7-]@70, [7-][6-]!RN@75',
muck2='A[K-]@40, K[Q-]@45, Q[J-]@50, J[T-]@55, T[9-]@60, 9[8-]@65, 8[7-]@70, [7-][6-]!RN@75',
muck3='A[K-]@40, K[Q-]@45, Q[J-]@50, J[T-]@55, T[9-]@60, 9[8-]@65, 8[7-]@70, [7-][6-]!RN@75'

结果是61%

如果不考虑这三位弃牌者,那么我们对大盲的equity语句是:
select avg(equity(hero,river)            ) as Herosb_vs_BBfrom game= 'holdem', hero='KxQy', bb='**'
结果也是61%

此影响可谓小到足矣忽略不计。
作者: riverismyfriend    时间: 2013-3-31 15:31
我来问一个PLO的,AA22r在Th7d3s这个牌面面对对手的range为20%!AA,SPR到多少的时候bet/stack off的ev要小于bet/fold。 bet size = 0.5和0.75是否会有很大影响。假设对方jam or fold, never call。
作者: Howard    时间: 2013-4-1 11:52
本帖最后由 Howard 于 2013-3-31 21:53 编辑
riverismyfriend 发表于 2013-3-31 01:31
我来问一个PLO的,AA22r在Th7d3s这个牌面面对对手的range为20%!AA,SPR到多少的时候bet/stack off的ev要小 ...

这个问题我个人非常喜欢,谢谢river是朋友提出这样一个对我胃口的问题。它稍微有点复杂,先计算一个简单版本的。

假设:
1. 有效筹码SPR=1,也就是说剩余1个potsize bet
2. 对手把我们定位于AA但他不知道我们另外两张牌,他会精确地选择最佳玩法(他领先或odds够则call,不够则弃牌)
3. 设翻牌前的pot为单位1。

则Hero在翻牌全进的EV计算为:
select
  avg(case when HvPerceivedRangeEquity(Villain,flop,'AA!AAA') < 0.3333
               then 1
               else riverEquity(Hero)*(1+1+1) -1
               end) as Hero_EV
from
  game='omahahi',
  board='Th7d3s',
  Hero='AwAx2y2z',
  Villain='20%!AA'

计算结果是0.82



作者: riverismyfriend    时间: 2013-4-1 14:45
诸位帮我检查一下算术

EV(bet/jam) vs EV(bet/fold)

pot size = 1
remaining stack = SPR
equity vs jamming range = e
jamming frequency = J
cbet size = b

EV(bet/jam) = EV(allin) + EV(takedown)
                  =EV(allin and win) + EV(allin and lose) + EV(take down)
                  =(2xspr+1) * e * J - spr* (1-e) * J + (1-J)

EV(bet/fold) = EV(b/f) + EV(takedown)
                   = -bs * J + (1-J)
作者: notch    时间: 2013-4-1 15:40
Howard 发表于 2013-3-31 09:50
这个问题问的很成功。因为这种preflop multiway,而且ton postplop play尚未开始,几乎一定是无法解决的。 ...

else Equity(hero, river)*50-1   
为啥后面只是-1,如果大家再投入9bb,那么应该是-10吧?
作者: notch    时间: 2013-4-1 16:02
Howard 发表于 2013-3-31 10:46
这道题超出我的水平,到到目前为止我还无法用比较简便的方法计算。问题出在打到河牌的玩家数目不固定。现 ...

谢谢howard的计算
27.64%的概率不算小了

按照我之前的定义,那么(1-27.64%)=72.36%的概率会弃牌 ev = -0.5bb*72%

剩下的27.64%概率下 sb全进100bb
如果对手没好牌,那么会弃牌,从后面howard的计算来看74%的可能拿到5bb的锅,那么收益是4.5bb*74%

接下来要计算当有人有机会(26%)拿到好牌以后我们的胜率是多少
估计这个值会很低,顶对只有面对两对的时候还有3~5张的out
面对顺子,set,几乎是drawing dead
假设平均5%?
5%*205bb-100.5bb=-90bb,总的26%*(-90bb)

综合上述三个结果,总的ev=-20bb

意味着面对四人,sb中flop以后在100bb深度下,无法无脑推
计算下来的结果是13bb深度下,sb可以无脑推,这个时候spr=2.6,是非常低的

计算的目的是看KQo这样的牌,在sb位置下确定没有被dominate的情况下能否补齐
结论是很难打,除非你是一个很浅的筹码深度 <13bb

有效的做法可能是raise,减少对手
或者fold,远离危险

作者: Howard    时间: 2013-4-1 22:13
本帖最后由 Howard 于 2013-4-1 08:15 编辑
riverismyfriend 发表于 2013-4-1 00:45
诸位帮我检查一下算术

EV(bet/jam) vs EV(bet/fold)

EV(bet/jam) = EV(allin) + EV(takedown)
                  =EV(allin and win) + EV(allin and lose) + EV(take down)
                  =(2xspr+1) * e * J - spr* (1-e) * J + (1-J)

上式的红色部分有点小问题。第一项是计算基础是whole pot(2spr+1),第二项是自己要输的部分spr,二者不能直接相加。

可以把第一项改成自己要赢的部分也就是spr+1,spr表示对手的剩余筹码,1表示preflop锅底。改后的公式为:
(spr+1) * e * J - spr* (1-e) * J + (1-J)

或者把红字部分采用 (new pot) * equity - (cost of bet) 方法来计算,这也是我习惯的办法:
J * [(2spr+1) * e  - spr] + (1-J)

两种方法结果一致。

作者: Howard    时间: 2013-4-1 22:19
本帖最后由 Howard 于 2013-4-1 10:42 编辑
notch 发表于 2013-4-1 01:40
else Equity(hero, river)*50-1   
为啥后面只是-1,如果大家再投入9bb,那么应该是-10吧? ...

你指出的对,那里我搞错了,确实应该是-10。抱歉、谢谢
10的含义是站在preflop limp之前的时间点

select avg(case  when inRange(BB,'QQ+, AK')   
                      then -1
              else Equity(hero, river)*50 - 10           
              end) as Hero_Limp_EV
from game = 'holdem', hero='KxQy',
     UTG2='JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     CO = 'JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     BTN= 'JJ-22, KxQx-5x4x, KxQy-6x5y, KxJx-6x4x, AxQy-Ax2y, AxJx-Ax2x, Kx9x, KxTx, KxTy',
     BB = '**'

结算结果为3.23BB

作者: riverismyfriend    时间: 2013-4-1 22:30
Howard 发表于 2013-4-1 22:13
EV(bet/jam) = EV(allin) + EV(takedown)
                  =EV(allin and win) + EV(allin and lose) +  ...

呃呃,忘了减成本了。

作者: 水果刀    时间: 2013-4-2 01:49
几个临时想到的小问题
1.比如JTS 78S这样的牌,5张牌发完到河底有多少概率成同花顺
2.两张同花翻牌成听同花貌似概率为10%,那 5张牌发完到河底,成同花概率是多少?
3.JTo 98o 这样的牌,5张牌发完到河底 多是概率成顺呢?
作者: Howard    时间: 2013-4-2 02:27
水果刀 发表于 2013-4-1 11:49
几个临时想到的小问题
1.比如JTS 78S这样的牌,5张牌发完到河底有多少概率成同花顺
2.两张同花翻牌成听同花 ...

1.  0.19%
select count( HandType(hero, river) = straightflush) as SC_Making_SF
from game = 'holdem', hero = '6s5s'

2.  6.5%
select count( HandType(hero, river) = flush) as Suited_Making_Flush
from game = 'holdem', hero = 'AsKs'

3. 9.1%
select count( HandType(hero, river) = straight) as Connector_Making_Straight
from game = 'holdem', hero = 'JsTc'


以上均包含公牌面本身即成SF/Flush/Straight。这部分概率很小,基本可忽略

作者: Howard    时间: 2013-4-2 13:12
本帖最后由 Howard 于 2013-4-2 06:35 编辑

把riverismyfriend朋友的omaha问题再往深里探讨一步,看看bet/call和bet/fold的EV分别是多少。

首先还得明确几个假设:
1. SPR小于1的时候,Hero始终bet/call,因为已经没有bet/fold的空间。
2. SPR>4的时候,bet/call不能一贯执行,因为即使hero bet potsize,对手potsize raise,也不能达到全进。而且AA22牌力不支持。
3. 所以比较b/c和b/f,SPR应该是在1~4之间。
4. 对手永远AI or f,不会call。
5. 对手把我们定位于AA但不是AAA/AAAA,但他不知道我们另外两张牌。
6. 对手AI odds够则AI,否则fold。

两个参数:1. #SPR#,表示剩余stack to pot Ratio;
                 2. #BET_TO_POT_RATIO#,表示Hero的下注量。可以小于1。
翻牌行动前potsize=1

EV比较的语句为:

select      avg(case when HvPerceivedRangeEquity(Villain,flop,'AA!AAA') < #SPR# / (1 + #SPR# *2)
                     then 1
                     else riverEquity(Hero) * (1 + #SPR# * 2) - #SPR#
                end) as Hero_EV_betcall

            avg(case when HvPerceivedRangeEquity(Villain,flop,'AA!AAA') < #SPR# / (1 + #SPR# *2)
                     then 1
                     else -#BET_TO_POT_RATIO#
                end) as Hero_EV_betfold
from
  game='omahahi',
  board='Th7d3s',
  Hero='AwAx2y2z',
  Villain='20%!AA'

代入若干参数,结果如下:
SPR  Bet_to_pot    EV(b/c)   EV(b/f)
1         0.5               0.84       0.45               (bet halfpot then fold to fullpot allin)
1.5      0.5               0.63        0.48
1.5     0.75              0.63        0.36
1.5       1                 0.63        0.27
2          0.5              0.76        0.56        
2          0.75            0.76        0.47        
2          1                 0.76        0.35        
2.5       0.5              0.51        0.65
2.5       0.75            0.51        0.58
2.5       1                 0.51        0.45

作者: riverismyfriend    时间: 2013-4-2 17:16
Howard 发表于 2013-4-2 13:12
把riverismyfriend朋友的omaha问题再往深里探讨一步,看看bet/call和bet/fold的EV分别是多少。

首先还得明 ...

多谢多谢。

有一些问题,你的算法里面对方allin的频率是跟spr相关的?能把这个频率给出来吗?

这个board可能给的有点问题,我晚上回来把我算的结果贴出来再研究下。

作者: cesar    时间: 2013-4-2 17:27
翻了几页,在看晕前先把问题问了;

能算中bad beat jackpot 概率不?

1 AAATT 输给quads+概率

2 QQQQ 输给better的概率

要求 2cards play, kicker不算,象牌面qqqxx 你拿aq不算;
作者: Howard    时间: 2013-4-2 20:41
riverismyfriend 发表于 2013-4-2 03:16
多谢多谢。

有一些问题,你的算法里面对方allin的频率是跟spr相关的?能把这个频率给出来吗?

Villain的思路假设如下:
1. 假设Hero是AAXY,但不包含AAAX/AAAA (读Hero的牌很准)
2. 假设自己AI后,Hero必然call。
3. 因此Villain AI需要的odds是要在全进下计算的。
   minimum odds = (effective stack) / (final pot after both go AI) = SPR / (1 + 2 * SPR)

作者: Howard    时间: 2013-4-3 03:08
cesar 发表于 2013-4-2 03:27
翻了几页,在看晕前先把问题问了;

能算中bad beat jackpot 概率不?

badbeat概率也是可以算的。这个可以有。

比如你的第一问:
select count(
    MinHiRating (hero, river, RateHiHand ('AsAhAcTcTs'))
and MinHiRating (villain, river, RateHiHand ('2s2h2c2d3s'))
and WinsHi (villain)
and cardsplay(hero,river)= 2
and cardsplay(villain,river)= 2
)
from game='holdem', hero='*', villain= '*'

翻译成人话,就是:
1. Hero的牌至少是AAATT
2. 坏蛋的牌至少是quads
3. 坏蛋胜出
4. 英雄和坏蛋的手牌均play。

计算结果令人遗憾,因为网页版的最多只能计算600000次,不够多,结果是0。连续运行十次左右会出来1次命中,估计在几百万分之一左右。

注意这个概率与您要求的有很大区别,您可能是想知道9人桌的概率,这是HU,而且规定了Hero是输方。


作者: Howard    时间: 2013-4-3 03:33
本帖最后由 Howard 于 2013-4-2 13:40 编辑

网上最详尽的badbeat计算结果如下表所示(courtesey of WizardofOdds.com)

假设:
1.  10人桌,no fold。
2.  至少有两个玩家的牌符合badbeat。(含三个及以上)
3.  Type1型允许非口袋对子起手牌,允许tie kicker。例如KQ在KQQQ4牌面满足要求。
4.  Type2型更严,在type1基础上,四条必须是口袋对子。
5.  Type3型最严,在type2基础上,葫芦不能靠公牌面的trips。比如KK在AAA36牌面不合要求。

[/table]
Bad Beat Probabilities
Bad Beat HandType 1Type 2Type 3
Any full house
0.00203329
0.00050305
0.00049508
Full house, three 3's or higher
0.00189512
0.00046978
0.00046204
Full house, three 4's or higher
0.00175159
0.00043444
0.00042728
Full house, three 5's or higher
0.00160333
0.00039706
0.00039028
Full house, three 6's or higher
0.00144965
0.00035741
0.00035145
Full house, three 7's or higher
0.0012936
0.00031767
0.00031266
Full house, three 8's or higher
0.00113492
0.00027775
0.00027355
Full house, three 9's or higher
0.00097379
0.00023772
0.00023445
Full house, three T's or higher
0.00081113
0.00019759
0.00019503
Full house, three J's or higher
0.00064763
0.00015708
0.00015509
Full house, three Q's or higher
0.00048533
0.00011838
0.00011682
Full house, three K's or higher
0.00032561
0.00008130
0.00008033
Full house, three A's or higher
0.00016964
0.00004608
0.00004579
Full house, aces full of 3's or higher
0.00016004
0.00004350
0.00004322
Full house, aces full of 4's or higher
0.00014986
0.00004080
0.00004052
Full house, aces full of 5's or higher
0.00013898
0.00003797
0.00003763
Full house, aces full of 6's or higher
0.00012749
0.00003504
0.00003469
Full house, aces full of 7's or higher
0.00011580
0.00003233
0.00003203
Full house, aces full of 8's or higher
0.00010347
0.00002957
0.00002925
Full house, aces full of 9's or higher
0.00009067
0.00002673
0.00002645
Full house, aces full of T's or higher
0.00007714
0.00002383
0.00002359
Full house, aces full of J's or higher
0.00006286
0.00002064
0.0000204
Full house, aces full of Q's or higher
0.00004793
0.00001738
0.00001721
Full house, aces full of K's or higher
0.00003230
0.00001408
0.00001402
Any four of a kind
0.00001601
0.00001086
0.00001081
Four 3's or higher
0.00001437
0.00000996
0.00000992
Four 4's or higher
0.0000127
0.00000900
0.00000902
Four 5's or higher
0.00001099
0.00000805
0.00000804
Four 6's or higher
0.00000934
0.00000705
0.00000707
Four 7's or higher
0.0000078
0.00000613
0.00000611
Four 8's or higher
0.0000064
0.00000525
0.00000519
Four 9's or higher
0.00000519
0.00000439
0.00000435
Four T's or higher
0.00000414
0.00000359
0.00000357
Four J's or higher
0.00000317
0.00000287
0.00000285
Four Q's or higher
0.00000246
0.00000226
0.00000224
Four K's or higher
0.00000193
0.00000180
0.00000179
Four A's or higher
0.00000157
0.00000149
0.00000147
Any straight flush
0.0000012
0.00000122
0.00000121
Straight flush 6 high or higher
0.00000105
0.00000107
0.00000105
Straight flush 7 high or higher
0.00000089
0.00000091
0.00000090
Straight flush 8 high or higher
0.00000073
0.00000074
0.00000074
Straight flush 9 high or higher
0.00000056
0.00000059
0.00000058
Straight flush T high or higher
0.00000041
0.00000043
0.00000042
Straight flush J high or higher
0.00000028
0.00000027
0.00000027
Straight flush Q high or higher
0.00000012
0.00000012
0.00000012

根据上表,cesar的要求是type2型。
1 AAATT 输给quads+概率:0.00002383
2 QQQQ 输给better的概率:0.00000226

作者: cesar    时间: 2013-4-3 08:22
Howard 发表于 2013-4-3 03:33
网上最详尽的badbeat计算结果如下表所示(courtesey of WizardofOdds.com)

假设:

{:soso_e179:}

以前通过收集几个观测时点多家赌场jackpot值再算出平均值,大概估算出发生概率;

现在有这表就鸟枪换炮了;

老霍牛~

作者: riverismyfriend    时间: 2013-4-3 09:11
Howard 发表于 2013-4-2 13:12
把riverismyfriend朋友的omaha问题再往深里探讨一步,看看bet/call和bet/fold的EV分别是多少。

首先还得明 ...

霍师傅来看看我算的,貌似有很大出入?

http://www.zhiyoucheng.com/forum.php?mod=viewthread&tid=12424&page=1&extra=#pid113748

作者: notch    时间: 2013-4-20 11:27
问个简单的问题:
H/L 7 cards stud,拿到low牌的可能有多大?
作者: Howard    时间: 2013-4-21 08:09
如果起手三张牌不论,拿到low牌的概率是 18.3%

select count( madeLo(hero, seventh ))
from game = 'Stud8', Hero = '*'


如果起手三张全高牌,拿到low的几率肯定是0.
select count( madeLo(hero, seventh ))
from game = 'Stud8', Hero = 'KQJ'


起手一张低牌,拿到low的几率是4.2%
select count( madeLo(hero, seventh ))
from game = 'Stud8', Hero = 'A99'

起手两张低牌,拿到low概率是19.7%
select count( madeLo(hero, seventh ))
from game = 'Stud8', Hero = 'A29'

起手三张低牌,拿到low概率是48.3%  这个概率可能是最有用的,一般起手都是三低牌
select count( madeLo(hero, seventh ))
from game = 'Stud8', Hero = 'A23'

作者: feiyingcpr    时间: 2013-5-6 16:18
这个可以用来计算港式五张牌的概率吗?
作者: Howard    时间: 2013-5-7 21:34
本帖最后由 Howard 于 2013-5-7 07:36 编辑
feiyingcpr 发表于 2013-5-6 02:18
这个可以用来计算港式五张牌的概率吗?

该软件暂时还计算不了5-card stud。但是5-card stud的计算一般都不算太难,你是否可以把问题提出来,我试试看能否硬算出来

--------------以下来自wikipedia:

梭哈,又译沙蟹或晒冷,是英文Show Hand的音译,正式名称是Five-card stud,香港也有人称之为話事啤,是一种扑克牌游戏。

若牌型一样则利用数字和花色决定胜负。(数字优先)

数字的顺序(大至小)为: A,K,Q,J,10,9,8。(Ace可以当最大亦可当最小,例如说作为顺子时当拥有A K Q J 10时,A为最大,但如果是5 4 3 2 A则这副牌中最大的是5,最小的则是A作为一点。)

花色的顺序(大至小)为: 花色 黑桃 > 红心 > 梅花 > 方块,有些地方大小顺序是黑桃 > 红心 > 方块 > 梅花 [台湾玩法,桥牌花色亦同],各地略有不同, 因此部份扑克游戏(如德州扑克)中花色是不分大小的。

此类组合牌型也运用到另一种牌类游戏“大老二”上面,除了花色不同(黑桃>红心>方块>梅花)和大小不同(以二为最大,接下去大小为A、K、Q、J.....以此类推)之外,玩法几乎雷同。
作者: unlimitspeed    时间: 2013-5-8 18:10
手拿T8s,翻牌中顶对听花,面对3个对手的胜率有多少?
作者: Howard    时间: 2013-5-9 04:31
unlimitspeed 发表于 2013-5-8 04:10
手拿T8s,翻牌中顶对听花,面对3个对手的胜率有多少?

这问题pokerstove最擅长。

Ts8s vs Random vs Random vs Random
on [Tc6s3s]
EV=
63.57: 12.14: 12.14: 12.14


Ts8s vs [top 20%] vs [top 20%] vs [top 20%]
on [Tc6s3s]
EV=
49.45 : 16.85 : 16.85 : 16.85


Ts8s vs [top 3%] vs [top 15%] vs [top 40%]
on [Tc6s3s]
EV=
45.74 : 30.17 : 13.56 : 10.52



作者: unlimitspeed    时间: 2013-5-9 04:54
Howard 发表于 2013-5-9 04:31
这问题pokerstove最擅长。

Ts8s vs Random vs Random vs Random

怎么算,这都是可以一手拼命的牌?
作者: Howard    时间: 2013-5-9 05:11
unlimitspeed 发表于 2013-5-8 14:54
怎么算,这都是可以一手拼命的牌?

你的EV高于对手,未必能推出 “可以拼命” 。

如果你拼命,对手拿所有range都跟,那就可以拼命。

但是,更现实的情况是,你一拼命,他把一些弱牌都扔了,只拿着强牌跟你对磕。比如一个极端对手,你一拼命,他其他牌全扔了,只拿着set才跟你玩,那我们显然不能拼命。

是否拼命这件事儿,还得具体问题具体分析

作者: 老陈    时间: 2013-5-9 06:35
本帖最后由 老陈 于 2013-5-8 16:41 编辑

10人桌Omaha,10人看翻牌,在无花无顺无对的牌面上,我中了两个顶对,不发转牌和河牌,这时亮牌比大小,我赢的概率是多少?
作者: Howard    时间: 2013-5-9 12:47
老陈的问题,肯定是最具挑战性,又一定可解的问题。

首先,翻牌直接比大小,那么用equity不行,因为draw牌没有任何equity。
其次,计算单个玩家中set的概率也不行,因为各玩家中set不是独立事件。


经过考虑,我使用如下模型:

Hero 的牌是QJRN,其中R和N表示Q和J之外的牌(保证hero不是set)
其他9个对手的牌都是纯随机牌*
翻牌是QJ2彩虹

计算有多少个玩家中暗三,因为hero只输给暗三。

结果如下图所示:76.53%的时候,无人中暗三,这也就是Hero胜出的概率。

注意:本计算未考虑其他人也中顶两对,把那种情况也算成Hero胜出了。



[URL='http://propokertools.com/odds_oracle']ProPokerTools Odds Oracle Results (2.22 Professional)[/URL][/SIZE]
Omaha Hi, Generic syntax
Board - QyJx2w
PLAYER_1 QJRN
PLAYER_10 *
PLAYER_2 *
PLAYER_3 *
PLAYER_4 *
PLAYER_5 *
PLAYER_6 *
PLAYER_7 *
PLAYER_8 *
PLAYER_9 *
2549756 trials (randomized)


How many players flop hand category at least set[/SIZE]

[B]Percent[/B][B]Count[/B]
0 PLAYER(S)76.5340%1951430
1 PLAYER(S)21.7492%554552
2 PLAYER(S)1.6762%42739
3 PLAYER(S)0.0406%1035





作者: Howard    时间: 2013-5-9 12:52
本帖最后由 Howard 于 2013-5-8 22:56 编辑

下图是翻牌击中【顶两对+set】玩家个数的概率。可见,有60.07%的时候,Hero独自一人中了顶两对且无人set。



[URL='http://propokertools.com/odds_oracle']ProPokerTools Odds Oracle Results (2.22 Professional)[/URL][/SIZE]
Omaha Hi, Generic syntax
Board - QyJx2w
PLAYER_1 QJRN
PLAYER_10 *
PLAYER_2 *
PLAYER_3 *
PLAYER_4 *
PLAYER_5 *
PLAYER_6 *
PLAYER_7 *
PLAYER_8 *
PLAYER_9 *
2617852 trials (randomized)


How many players flop hand category at least toptwo[/SIZE]

[B]Percent[/B][B]Count[/B]
1 PLAYER(S)60.0668%1572459
2 PLAYER(S)35.0381%917245
3 PLAYER(S)4.7816%125175
4 PLAYER(S)0.1136%2973




PQL[/SIZE]

  1. select count(true) as trials,
  2. histogram(toString(
  3.   (case when
  4.   minFlopHandCategory(PLAYER_1,FLOPTOPTWO)
  5.   then 1 else 0 end)
  6.   +
  7.   (case when
  8.   minFlopHandCategory(PLAYER_10,FLOPTOPTWO)
  9.   then 1 else 0 end)
  10.   +
  11.   (case when
  12.   minFlopHandCategory(PLAYER_2,FLOPTOPTWO)
  13.   then 1 else 0 end)
  14.   +
  15.   (case when
  16.   minFlopHandCategory(PLAYER_3,FLOPTOPTWO)
  17.   then 1 else 0 end)
  18.   +
  19.   (case when
  20.   minFlopHandCategory(PLAYER_4,FLOPTOPTWO)
  21.   then 1 else 0 end)
  22.   +
  23.   (case when
  24.   minFlopHandCategory(PLAYER_5,FLOPTOPTWO)
  25.   then 1 else 0 end)
  26.   +
  27.   (case when
  28.   minFlopHandCategory(PLAYER_6,FLOPTOPTWO)
  29.   then 1 else 0 end)
  30.   +
  31.   (case when
  32.   minFlopHandCategory(PLAYER_7,FLOPTOPTWO)
  33.   then 1 else 0 end)
  34.   +
  35.   (case when
  36.   minFlopHandCategory(PLAYER_8,FLOPTOPTWO)
  37.   then 1 else 0 end)
  38.   +
  39.   (case when
  40.   minFlopHandCategory(PLAYER_9,FLOPTOPTWO)
  41.   then 1 else 0 end)
  42. ) || ' player(s)') /* How many flop hand category at least toptwo */ as HMP1
  43. from game='omahahi', syntax='Generic',
  44.      board='QyJx2w',
  45.      PLAYER_1='QJRN',
  46.      PLAYER_2='*',
  47.      PLAYER_3='*',
  48.      PLAYER_4='*',
  49.      PLAYER_5='*',
  50.      PLAYER_6='*',
  51.      PLAYER_7='*',
  52.      PLAYER_8='*',
  53.      PLAYER_9='*',
  54.      PLAYER_10='*'
复制代码

作者: 老陈    时间: 2013-5-10 05:26
本帖最后由 老陈 于 2013-5-9 15:47 编辑
Howard 发表于 2013-5-8 22:47
老陈的问题,肯定是最具挑战性,又一定可解的问题。

首先,翻牌直接比大小,那么用equity不行,因为draw牌 ...

我和HOWARD的分析思路一致,计算结果略有不同。
我说说我的计算过程:
先算战胜第1个对手的概率:
就是第1个对手没有22,JJ,QQ的概率。
没有22的概率=1-有22的概率=1-3 X C(45,2)/C(47,4)
没有JJ的概率=1-有JJ的概率=1- C(45,2)/C(47,4)
没有QQ的概率=1-有QQ的概率=1- C(45,2)/C(47,4)
把3项相乘就得到战胜第1个对手的概率。
再算战胜所有对手得概率
乘9次方得77.78%










作者: notch    时间: 2013-5-10 12:33
本帖最后由 notch 于 2013-5-10 12:38 编辑

问个笼统的问题:
PLO里头翻牌中牌的概率是多少?
牌型:
4连张,中牌:顺,抽龙头顺,两对加抽oe顺
KQJ9类型,中牌:顺,抽龙头顺
KQT8类型,中牌:顺,抽龙头顺
两对,中牌:set
A花带三连张,中牌:顺,抽龙头顺,抽顺加抽花(这里抽顺可以是卡顺)
KQJ2类型,中牌:顺,抽龙头顺
作者: Howard    时间: 2013-5-11 00:10
本帖最后由 Howard 于 2013-5-10 10:37 编辑

先谢谢notch这么好的题。

这些问题计算起来还是比较复杂的。先算你的第一问:4连张的中牌概率

以下是T987彩虹在翻牌上的分情况统计:

25.6093% NOTHING | STRAIGHT OUTS: 0
10.0002% NOTHING | STRAIGHT OUTS: 1-4
4.9969% NOTHING | STRAIGHT OUTS: 13-16
1.3920% THIRDPAIR | STRAIGHT OUTS: 0
1.9595% THIRDPAIR | STRAIGHT OUTS: 1-4
0.2774% THIRDPAIR | STRAIGHT OUTS: 9-12
2.2243% THIRDPAIR | STRAIGHT OUTS: 13-16

8.9665% SECONDPAIR | STRAIGHT OUTS: 0
5.0436% SECONDPAIR | STRAIGHT OUTS: 1-4
0.5486% SECONDPAIR | STRAIGHT OUTS: 5-8
1.4749% SECONDPAIR | STRAIGHT OUTS: 9-12
6.1340% SECONDPAIR | STRAIGHT OUTS: 13-16
1.6723% SECONDPAIR | STRAIGHT OUTS: 17+

5.2039% TOPPAIR | STRAIGHT OUTS: 0
3.0770% TOPPAIR | STRAIGHT OUTS: 1-4
0.6495% TOPPAIR | STRAIGHT OUTS: 9-12
3.3676% TOPPAIR | STRAIGHT OUTS: 13-16

3.7509% BOTTOMTWO | STRAIGHT OUTS: 5-8
5.6149% TOPTWO | STRAIGHT OUTS: 5-8
1.6767% TRIPS | STRAIGHT OUTS: 0
0.8390% TRIPS | STRAIGHT OUTS: 1-4
4.8944% STRAIGHT | ALREADY HAVE/BEAT STRAIGHT
0.6046% FULLHOUSE | ALREADY HAVE/BEAT STRAIGHT
0.0221% QUADS | ALREADY HAVE/BEAT STRAIGHT


其中竖线之前是翻牌上的牌型,竖线之后是顺子听的outs。两项结合起来,大致可以回答这个问题。

如果龙头顺定义为有9+ outs的听顺,那么红色部分满足“中牌”。
加起来的概率是:30.69%

上述统计不包含单纯Trips,比如flop 773。flop778是包含的,因为算作fullhouse。如果包含单纯trips,概率是33.2%
  1. select count(true) as trials,
  2. histogram(
  3.           case flopHandCategory(PLAYER_1)
  4.             when FLOPNOTHING then 'NOTHING@0'
  5.             when FLOPUNDERPAIR then 'UNDERPAIR@1'
  6.             when FLOPTHIRDPAIR then 'THIRDPAIR@2'
  7.             when FLOPPOCKET23 then 'POCKET23@3'
  8.             when FLOPSECONDPAIR then 'SECONDPAIR@4'
  9.             when FLOPPOCKET12 then 'POCKET12@5'
  10.             when FLOPTOPPAIR then 'TOPPAIR@6'
  11.             when FLOPOVERPAIR then 'OVERPAIR@7'
  12.             when FLOPBOTTOMTWO then 'BOTTOMTWO@8'
  13.             when FLOPTOPANDBOTTOM then 'TOPANDBOTTOM@9'
  14.             when FLOPTOPTWO then 'TOPTWO@10'
  15.             when FLOPTRIPS then 'TRIPS@11'
  16.             when FLOPSET then 'SET@12'
  17.             when FLOPSTRAIGHT then 'STRAIGHT@13'
  18.             when FLOPFLUSH then 'FLUSH@14'
  19.             when FLOPFULLHOUSE then 'FULLHOUSE@15'
  20.             when FLOPQUADS then 'QUADS@16'
  21.             when FLOPSTRAIGHTFLUSH then 'STRAIGHTFLUSH@17'
  22.           end           || '|' ||
  23.           case
  24.             when nutHi(PLAYER_1, flop) then 'nuts@1'
  25.             else 'not nuts@0'
  26.           end           || '|' ||
  27.           case
  28.             when rankCount(nonIntersectingHandRanks(PLAYER_1, flop)) > 0
  29.                  and maxRank(nonIntersectingHandRanks(PLAYER_1, flop)) > maxRank(boardRanks(flop)) then '1+ overcard(s)@1'
  30.             else 'no overcards@0'
  31.           end
  32.            || '|' ||
  33.           case
  34.             when handtype(PLAYER_1, flop) >= flush then 'already have/beat flush@2'
  35.             when fourFlush(PLAYER_1, flop) then 'flush draw@1'
  36.             else 'no flush draw@0'
  37.           end
  38.            || '|' ||
  39.           case
  40.             when handtype(PLAYER_1, flop) >= flush then 'already have/beat flush@2'
  41.             when threeFlush(PLAYER_1, flop) then 'backdoor flush draw@1'
  42.             else 'no backdoor flush draw@0'
  43.           end
  44.            || '|' ||
  45.           case
  46.             when handtype(PLAYER_1, flop) >= straight then 'already have/beat straight@100'
  47.             else
  48.               'straight outs: ' ||
  49.               case outsToHandType(PLAYER_1, flop, straight)
  50.                 when 0 then '0@0'
  51.                 when 1 then '1-4@1'
  52.                 when 2 then '1-4@1'
  53.                 when 3 then '1-4@1'
  54.                 when 4 then '1-4@1'
  55.                 when 5 then '5-8@2'
  56.                 when 6 then '5-8@2'
  57.                 when 7 then '5-8@2'
  58.                 when 8 then '5-8@2'
  59.                 when 9 then '9-12@3'
  60.                 when 10 then '9-12@3'
  61.                 when 11 then '9-12@3'
  62.                 when 12 then '9-12@3'
  63.                 when 13 then '13-16@4'
  64.                 when 14 then '13-16@4'
  65.                 when 15 then '13-16@4'
  66.                 when 16 then '13-16@4'
  67.                 else '17+@5'
  68.                end
  69.           end
  70.            || '|' ||
  71.           toString(handBoardIntersections(PLAYER_1, flop)) || ' hand board intersection(s)@' ||  toString(handBoardIntersections(PLAYER_1, flop))
  72. )  as PLAYER_1_INTERACTIVE_FLOP_STATS3
  73. from game='omahahi', syntax='Generic',
  74.      PLAYER_1='Tx9y8z7w'
复制代码

作者: 西红柿哥哥    时间: 2013-5-11 08:54
这帖子是高科技。。。想差一脚,当年书读少了~~只来看结果~
作者: notch    时间: 2013-5-11 12:10
这样看来4张连中牌的概率接近NLH里头的AK了,和猜测的差不多
作者: Howard    时间: 2013-5-11 14:22
notch 发表于 2013-5-10 22:10
这样看来4张连中牌的概率接近NLH里头的AK了,和猜测的差不多

得到肯定就好,我会继续计算剩下的几种牌。

但在继续之前,还需要小小修改一下

虽然你没提到,但我觉得T987彩虹这样的起手牌,如果翻牌3同花,一般应该归于不能继续下去的类别,也就不能算“中牌”了。这一点在计算中没有体现。

这看似简单的一点,软件却比较难于实现,似乎做得不太好。我已经联系软件作者,应该很快便有答复

在答复之前,我估计“击中率”可能要调低一两个百分点,到28%左右。不会影响太多。确实跟AK在holdem中翻牌中一对的概率差不多。

作者: 老陈    时间: 2013-5-12 06:15
老陈 发表于 2013-5-9 15:26
我和HOWARD的分析思路一致,计算结果略有不同。
我说说我的计算过程:
先算战胜第1个对手的概率:

84楼算式有误:
没有22的概率=1-有22的概率=1-3 X C(45,2)/C(47,4)
应该改成:
没有22的概率=1-有22的概率=1-3 X C(44,2)/C(46,4)-3X(3/47)(2/46)(1/45)


作者: Howard    时间: 2013-5-15 08:16
老陈 发表于 2013-5-11 16:15
84楼算式有误:
没有22的概率=1-有22的概率=1-3 X C(45,2)/C(47,4)
应该改成:

老陈的认真精神必须学习,经常是鼓励我的最大动力

作者: Howard    时间: 2013-5-15 09:01
本帖最后由 Howard 于 2013-5-14 20:29 编辑

回notch朋友,关于四连张的flop中牌,我前贴提到要排除”翻牌三同花“的情况,因为这类翻牌应该被认为无法继续

联系了软件作者,说尚且不能依靠软件界面弄出来,说愿意下一版考虑此功能。目前只能硬写代码。

只有红线部分满足”中牌“标准。共计 36.21%。这个概率比AK翻牌击中顶对的概率(30%)要大。


另外发现我前面86楼算错了,如果不排除3-flush flop,翻牌“中牌”的概率是35.7% (不含trips)或者38.2% (含trips)。

BOTTOMTWO@8|STRAIGHT  OUTS: 5-8@2|
3.58%
24551
FULLHOUSE@15|ALREADY HAVE/BEAT  STRAIGHT@100|
0.64%
4393
NOTHING@0|STRAIGHT OUTS:  13-16@4|
4.70%
32260
QUADS@16|ALREADY HAVE/BEAT  STRAIGHT@100|
0.02%
136
SECONDPAIR@4|STRAIGHT OUTS:  13-16@4|
5.77%
39605
SECONDPAIR@4|STRAIGHT OUTS:  17+@5|
1.56%
10744
SECONDPAIR@4|STRAIGHT OUTS:  9-12@3|
1.43%
9832
STRAIGHT@13|ALREADY HAVE/BEAT  STRAIGHT@100|
4.61%
31631
THIRDPAIR@2|STRAIGHT OUTS:  13-16@4|
2.07%
14223
THIRDPAIR@2|STRAIGHT OUTS:  9-12@3|
0.26%
1781
TOPPAIR@6|STRAIGHT OUTS:  13-16@4|
3.15%
21647
TOPPAIR@6|STRAIGHT OUTS:  9-12@3|
0.61%
4206
TOPTWO@10|STRAIGHT OUTS:  5-8@2|
5.31%
36435
TRIPS@11|STRAIGHT OUTS: 0@0|
1.69%
11576
TRIPS@11|STRAIGHT OUTS: 1-4@1|
0.82%
5625
BOTTOMTWO@8|STRAIGHT OUTS: 5-8@2| 3-FLUSH  FLOP
0.21%
1452
NOTHING@0|STRAIGHT OUTS: 0@0|
24.49%
168166
NOTHING@0|STRAIGHT OUTS: 0@0| 3-FLUSH  FLOP
1.05%
7234
NOTHING@0|STRAIGHT OUTS: 1-4@1|
9.47%
65027
NOTHING@0|STRAIGHT OUTS: 1-4@1| 3-FLUSH  FLOP
0.58%
3975
NOTHING@0|STRAIGHT OUTS: 13-16@4| 3-FLUSH  FLOP
0.28%
1937
SECONDPAIR@4|STRAIGHT OUTS: 0@0|
8.44%
57971
SECONDPAIR@4|STRAIGHT OUTS: 0@0| 3-FLUSH  FLOP
0.50%
3451
SECONDPAIR@4|STRAIGHT OUTS: 1-4@1|
4.72%
32424
SECONDPAIR@4|STRAIGHT OUTS: 1-4@1|  3-FLUSH FLOP
0.30%
2048
SECONDPAIR@4|STRAIGHT OUTS: 13-16@4|  3-FLUSH FLOP
0.35%
2426
SECONDPAIR@4|STRAIGHT OUTS: 17+@5|  3-FLUSH FLOP
0.10%
699
SECONDPAIR@4|STRAIGHT OUTS: 5-8@2|
0.51%
3520
SECONDPAIR@4|STRAIGHT OUTS: 5-8@2|  3-FLUSH FLOP
0.04%
243
SECONDPAIR@4|STRAIGHT OUTS: 9-12@3|  3-FLUSH FLOP
0.09%
616
STRAIGHT@13|ALREADY HAVE/BEAT  STRAIGHT@100| 3-FLUSH FLOP
0.29%
2005
THIRDPAIR@2|STRAIGHT OUTS: 0@0|
1.32%
9032
THIRDPAIR@2|STRAIGHT OUTS: 0@0| 3-FLUSH  FLOP
0.08%
573
THIRDPAIR@2|STRAIGHT OUTS: 1-4@1|
1.83%
12545
THIRDPAIR@2|STRAIGHT OUTS: 1-4@1| 3-FLUSH  FLOP
0.12%
812
THIRDPAIR@2|STRAIGHT OUTS: 13-16@4|  3-FLUSH FLOP
0.14%
942
THIRDPAIR@2|STRAIGHT OUTS: 9-12@3|  3-FLUSH FLOP
0.02%
110
TOPPAIR@6|STRAIGHT OUTS: 0@0|
4.98%
34206
TOPPAIR@6|STRAIGHT OUTS: 0@0| 3-FLUSH  FLOP
0.24%
1618
TOPPAIR@6|STRAIGHT OUTS: 1-4@1|
2.92%
20058
TOPPAIR@6|STRAIGHT OUTS: 1-4@1| 3-FLUSH  FLOP
0.18%
1242
TOPPAIR@6|STRAIGHT OUTS: 13-16@4| 3-FLUSH  FLOP
0.19%
1305
TOPPAIR@6|STRAIGHT OUTS: 9-12@3| 3-FLUSH  FLOP
0.03%
237
TOPTWO@10|STRAIGHT OUTS: 5-8@2| 3-FLUSH  FLOP
0.30%
2069
  1. select histogram(
  2.           case flopHandCategory(PLAYER_1)
  3.             when FLOPNOTHING then 'NOTHING@0'
  4.             when FLOPUNDERPAIR then 'UNDERPAIR@1'
  5.             when FLOPTHIRDPAIR then 'THIRDPAIR@2'
  6.             when FLOPPOCKET23 then 'POCKET23@3'
  7.             when FLOPSECONDPAIR then 'SECONDPAIR@4'
  8.             when FLOPPOCKET12 then 'POCKET12@5'
  9.             when FLOPTOPPAIR then 'TOPPAIR@6'
  10.             when FLOPOVERPAIR then 'OVERPAIR@7'
  11.             when FLOPBOTTOMTWO then 'BOTTOMTWO@8'
  12.             when FLOPTOPANDBOTTOM then 'TOPANDBOTTOM@9'
  13.             when FLOPTOPTWO then 'TOPTWO@10'
  14.             when FLOPTRIPS then 'TRIPS@11'
  15.             when FLOPSET then 'SET@12'
  16.             when FLOPSTRAIGHT then 'STRAIGHT@13'
  17.             when FLOPFLUSH then 'FLUSH@14'
  18.             when FLOPFULLHOUSE then 'FULLHOUSE@15'
  19.             when FLOPQUADS then 'QUADS@16'
  20.             when FLOPSTRAIGHTFLUSH then 'STRAIGHTFLUSH@17'
  21.           end           || '|' ||
  22.           case
  23.             when handtype(PLAYER_1, flop) >= straight then 'already have/beat straight@100'
  24.             else
  25.               'straight outs: ' ||
  26.               case outsToHandType(PLAYER_1, flop, straight)
  27.                 when 0 then '0@0'
  28.                 when 1 then '1-4@1'
  29.                 when 2 then '1-4@1'
  30.                 when 3 then '1-4@1'
  31.                 when 4 then '1-4@1'
  32.                 when 5 then '5-8@2'
  33.                 when 6 then '5-8@2'
  34.                 when 7 then '5-8@2'
  35.                 when 8 then '5-8@2'
  36.                 when 9 then '9-12@3'
  37.                 when 10 then '9-12@3'
  38.                 when 11 then '9-12@3'
  39.                 when 12 then '9-12@3'
  40.                 when 13 then '13-16@4'
  41.                 when 14 then '13-16@4'
  42.                 when 15 then '13-16@4'
  43.                 when 16 then '13-16@4'
  44.                 else '17+@5'
  45.                end
  46.           end
  47.            || '|' ||
  48.           case flushingBoard(flop)
  49.                 when true then ' 3-Flush Flop'
  50.                 else ' '
  51.           end
  52. )  as PLAYER_1_INTERACTIVE_FLOP_STATS1
  53. from game='omahahi', syntax='Generic',
  54.      PLAYER_1='tx9y8z7w'
复制代码

作者: Howard    时间: 2013-5-15 10:34
谁还有题目,请提出。有题目的时候,才有研究软件的动力
作者: Jsli    时间: 2013-5-15 10:37
西红柿哥哥 发表于 2013-5-11 08:54
这帖子是高科技。。。想差一脚,当年书读少了~~只来看结果~

跟西红柿哥哥一起看结果

我准备一个贴子一个贴子看尽量能看下去
然后会尽可能问一些愚蠢的问题


作者: mousoeng    时间: 2013-5-15 11:20
本帖最后由 mousoeng 于 2013-5-15 11:52 编辑

和之前一位朋友的问题类似...

翻牌前锅里10bb,HU,玩家乙range里是A/K/Q/J高同花,连/1间/2间同花,请教分别在有效筹码50bb,100bb,200bb的情况下:
玩家甲flop得到了
1)一对(顶对或超对)
2)暗三
手持听花的玩家乙flop主动allin(不考虑line,最终结果就是双方打入了全部筹码),手持
1)2高张+听花
2)1高张+听花
3)听两头顺子+听花
4)听单张顺子+听花
5)单听花
分别需要成牌的玩家甲有多少弃牌率,玩家乙才能有利可图?


作者: Jsli    时间: 2013-5-15 11:34
举例1.我手持TT,两个对手,底牌均不错,翻牌我不吃亏的概率是多少?
回答:如果定义“底牌不错”为15%,不吃亏定义为33%+ equity,答案是50.89%.
-------------------------------------------------------------------------------------------
底牌均不错意思对二方可能的牌是 88+或ATo+或JTs+的牌力?
自己底牌不错为15%,就是多数情形自己最好只打top15%的牌?
TT是top百分之几的牌力?

不吃亏就是三人锅我出了1/3的筹码
那么闭眼打到河牌我要有1/3=33%+的赢率
但很多时候我们看不到河牌
或中途就有人挂了

想问啥问题没想明白还是自问结果吧
TT翻牌不吃亏的概率是50.89%的话
这个在现场中有啥指导意义?
或者说在3人锅在所有牌中的top15%牌力里面在只看翻牌的情况下
TT的牌力是这15%牌力里的top25%+的牌力?
那么在另外两方牌力落在所有牌的top15%里的top50%的这个平均值情况下
TT翻牌不吃亏才会有50%几的概率?
也就是说TT是所有牌里面是top15%xtop25%=top4%的牌力?

另外霍师傅那个可玩性表里34s+
筹码100BB+的可玩性指数1.4
1.4是必玩的
34s赶脚是在top15%牌力的外面吧
有矛盾滴地方没?

我自言自语的跟贴
霍师傅不用再费神
还是不要影响霍师傅多休息多照顾好夫妻生活

是想在自言自语过程中能理顺一些基本滴概念



作者: Howard    时间: 2013-5-15 12:43
mousoeng 发表于 2013-5-14 21:20
和之前一位朋友的问题类似...

翻牌前锅里10bb,HU,玩家乙range里是A/K/Q/J高同花,连/1间/2间同花,请教 ...

这个问题有点猛料。

分情况分了三个维度。
x轴是筹码深度,3种情况,50bb 100bb 200bb
y轴是甲的牌, 两种情况
z轴是乙的牌,5中情况

其实,乙的5种情况又可细分为20来种。比如:1)中的两高张带听花,就可以细分为
1。两高张均比甲的超对(或顶对的kicker)高
2。只有一张比甲的超对(或者顶对的kicker)高
3。一张跟超对齐平,另一张比它高
4。一张齐平,另一张比它低
5。两高张都低于超对,只是高于board而已
。。。。

甲也不含糊,超对/顶对顶踢脚也得算两种,一共也得三种

所以,一共是至少3×3×20=180种情况

我先睡觉去了...

作者: mousoeng    时间: 2013-5-15 15:31
本帖最后由 mousoeng 于 2013-5-15 15:48 编辑

不好意思,我知道不能量化的问题不是好问题,不过还是力有不逮...

霍先生应该也看出来请教这个问题的用意,那么我再尝试简化一下:

假设2高张就是比board和玩家甲都高,比如AsKs在Qc8s2s的board对上QdQh或者QdJh;另外,也假设成牌的一方没有踩掉听花的出路... 因如果2高张仅高过board而低过超对,事实上玩家乙只得听花的出路而已,这就落到了乙:5)的情况中... 同理的,如果前面例子是KcQd而不是QdJh,那么玩家乙只剩1高张+听花,就是乙:2)了...

1高张对上顶对的场合边牌确实有点影响... 再假设这种时候玩家甲只有顶对顶脚/大脚的场合...

罗列所有situation就没办法计算了也没必要... 还可能有高张+听卡顺+听花/一对+听花的场合,而且还会是激进的打法下占了合理range很大一部分比例的,比如Ah4h在2h5cTh的board... 但这种强听牌或半成半听牌计算弃牌率,我认为意义不大了...
作者: Jsli    时间: 2013-5-15 16:11
本帖最后由 Jsli 于 2013-5-15 16:25 编辑

2. 9人桌,平均一手牌有多少人手里有AA/KK?
回答:0.08
-------------------------------------------------------
就是每100幅牌有8个人中AAKK
每12-13幅牌会有1个人中AAKK
就是20即分钟内会有人中AAKK

这也与老陈那个表
自己260把上下会中KK+的对上了

在霍师傅的贴子里自言自语是不是找骂呵
主要是把霍师傅这两个贴子弄明白了扑克理念肯定能上个台阶
太诱惑了
作者: Jsli    时间: 2013-5-15 16:52
zhaoyue0o0o 发表于 2013-3-27 00:09
我来 问。 有效筹码 40BB。  HERO BB。  UTG 3BB。 HERO  HAVE JJ。   UTG OPEN RANGE  12。 CALL RANGE 88 ...

小老弟扑克真有天份






欢迎光临 智游城 (http://zhiyoucheng.co/) Powered by Discuz! X3.2