智游城

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: Howard
打印 上一主题 下一主题

计算各种Omaha相关概率

[复制链接]
31#
swatow 发表于 2014-9-30 12:40:56 | 只看该作者
本帖最后由 swatow 于 2014-9-30 12:42 编辑
Howard 发表于 2014-9-30 01:00
对不起刚刚看到。

1. Omaha Hi里,拿到AA××的概率大约是2.58% (含AAA×和AAAA)如果不包含AAA和AAAA ...

霍爷V5!
问这两个问题是基于以下考虑:
1。正常的对手在不利位置或者raiser+caller的时候只会用好的AAxx 3bet,但我一直没有概念大概占多少比例的牌,现在清楚了。
2。面对松的pf 3bet,call 3bet之后在哪些牌面可以做一些bluff raise?当然ABB是可以的,但还有很多的牌面或许也可以,于是就假定了问题2的情形。霍爷还给了bonus,同时给出了听牌的概率。
继续给霍爷点赞,授人以渔,给出了sql,妈妈不用再担心我其他情况不会计算了。

然后我又在想应当是可以编程写个小工具的:
1。输入一个范围,计算出%。很多holdem的软件都有这样的功能,Omaha的还没见过。
2。输入board、范围,计算各种成手牌的概率,以及hole card面对这些成手牌的赢率。
当然我已经疏于编程,现在只能算见过猪跑的水平,尝试一下吃吃猪肉吧。

再给霍爷点32个赞!
32#
 楼主| Howard 发表于 2014-9-30 21:19:45 | 只看该作者
swatow 发表于 2014-9-29 22:40
霍爷V5!
问这两个问题是基于以下考虑:
1。正常的对手在不利位置或者raiser+caller的时候只会用好的AAxx  ...

谢谢鼓励!

这个软件的range功能确实非常强,每次都以为很难写出来了,最后却总能找到描述方法。

但也要注意很多细节。

比如说,您上贴提到的“AAXX两张连张边牌且有A花”。

最开始想用AA[23+]: xxyz表示。但有问题:
1. xxyz表明了是单花,而题意是“至少单花”,也就是可含双花
2. xxyz有可能是两张边牌同花,如 A A 8 7

于是改成AA[23+]: AxRx。这样在花色上可以解决上述两个问题,满足了要求。

但是我又一测试,发现AA[23+]: AxRx 有804个组合。804不能被11整除。这就还是有问题。
因为两张边牌,从KQ到32,应该是完全相等的11种。

后来想到23+的意思,是从23到AK,也就是说AA[23+]里面包含了AAAK,这显然不符合要求。
于是改成AA[KQ-]: AxRx,这下一共有792个组合,可以被11整除,这次应该没问题了。
33#
修道 发表于 2014-10-18 23:22:08 | 只看该作者
本帖最后由 修道 于 2014-10-18 23:25 编辑
Howard 发表于 2013-6-24 02:57
sorry,误解你意思了。我理解成如果我们手里有nut flush blocker,则对手有第二坚果的概率。

而你想问的是 ...


请霍爷打牌之余帮我写奥马哈几个代码,我准备放到软件里辅助决策:)
hero的牌:**** 六人桌,牌力在pokertool的排名 一个代码
敌人的牌:****
flop的牌:*** 计算flop的Equilab 一个代码
turn的牌:*  计算turn的Equilab 一个代码
river的牌:* 我们的牌为坚果 一个代码

hero的牌:已知 AhAsKhKs
flop的牌:Qh3h2s 计算flop的outs以及坚果outs  两个个代码?
turn的牌:9s 计算turn的outs数量以及坚果outs数量   两个个代码?

判断flop是否出现三张同花
判断flop是否出现三张顺子牌
判断turn是否出现三张同花
判断turn是否出现三张顺子牌
判断河牌hero是否有坚果


34#
 楼主| Howard 发表于 2014-10-21 00:08:23 | 只看该作者
修道 发表于 2014-10-18 09:22
请霍爷打牌之余帮我写奥马哈几个代码,我准备放到软件里辅助决策:)
hero的牌:**** 六人桌,牌力在poke ...
hero的牌:**** 六人桌,牌力在pokertool的排名 一个代码
敌人的牌:****
flop的牌:*** 计算flop的Equilab 一个代码
turn的牌:*  计算turn的Equilab 一个代码
river的牌:* 我们的牌为坚果 一个代码

这部分看不太懂。要写出什么代码?
omaha牌力排名的话,在ProPokerTool里面可以直接用百分数,比如 15%代表top 15%的起手牌

hero的牌:已知 AhAsKhKs
flop的牌:Qh3h2s 计算flop的outs以及坚果outs  两个个代码?

坚果outs数量(百分比)代码:
  1. select count(nutHi(PLAYER_1,turn) /* How often have the nut hi on the turn */) as PLAYER_1_HOEP_1,
  2. from game='omahahi', syntax='Generic',
  3.      board='Qh3h2s',
  4.      PLAYER_1='AhAsKhKs',
  5.      PLAYER_2='*'
复制代码
turn的牌:9s 计算turn的outs数量以及坚果outs数量
  1. select count(nutHi(PLAYER_1,river) /* How often have the nut hi on the river */) as PLAYER_1_HOEP_1
  2. from game='omahahi', syntax='Generic',
  3.      board='Qh3h2s9s',
  4.      PLAYER_1='AhAsKhKs',
  5.      PLAYER_2='*'
复制代码
有了百分比,outs数目也就出来了

非nut的outs不好算,因为out的定义,人类跟计算机有很大不同。有很多提升赢率的牌张,却被人类认为不算outs,比如转牌出2d。所以必须要先定义好什么叫outs才可以。



判断flop是否出现三张同花:
flushingBoard(flop)
或者
BoardInRange(xxx)

判断flop是否出现三张顺子牌
straightBoard(flop)

boardInRange('A23+')

判断turn是否出现三张同花
flushingBoard(turn)

判断turn是否出现三张顺子牌
straightBoard(turn)

判断河牌hero是否有坚果
nutHi(PLAYER_1,river)
35#
修道 发表于 2014-10-21 14:14:47 | 只看该作者
Howard 发表于 2014-10-21 00:08
这部分看不太懂。要写出什么代码?
omaha牌力排名的话,在ProPokerTool里面可以直接用百分数,比如 15%代 ...

非常感谢霍爷!!!!!
36#
修道 发表于 2014-10-21 14:57:56 | 只看该作者
请霍爷释疑:
1、syntax='Generic'是什么意思
2、/* How often have the nut hi on the turn */这里是注释还是有用的语句
3、as PLAYER_1_HOEP_1
as经常出现,是当什么什么……的意思吗?
PQL的帮助文档大部分都看不懂,写一个完整的PQL需要注意哪些地方呢?
霍爷用
判断flop是否出现三张同花:
flushingBoard(flop)
来举例说明一下行吗?
37#
修道 发表于 2014-10-21 15:04:58 | 只看该作者
或许我们可以自己在软件里写一个
判断花顺翻牌面()
返回逻辑值
参数,1表示flop,2表示turn,3表示river

38#
修道 发表于 2014-10-21 15:13:07 | 只看该作者
如果霍爷能抽空写一个PQL的中文使用文档的话,对国内牌手来说将是一个福音,善莫大焉!
39#
 楼主| Howard 发表于 2014-10-21 22:20:04 | 只看该作者
回36楼

1、syntax='Generic'是什么意思

PQL的语法是用来描述起手牌和公牌面的,有两套系统,一套叫做Classic,另一套Generic
Classic是比较老的,比较符合人类语法,比如A8s代表A8 suited,但它功能较弱。
Generic是比较新的系统,功能强大,A8s表示一张任意花色A和一张黑桃8。如果要表示A8 suited可以用Ax8x, A8$s, A8:xx。
还有很多区别不再一一列举。在现行PQL里面如果不指定,默认语法为generic,所以我例子里的syntax='generic'其实可以省略

2、/* How often have the nut hi on the turn */这里是注释还是有用的语句
   这是注释

3、as PLAYER_1_HOEP_1
as经常出现,是当什么什么……的意思吗?
as 是起一个别名而已,以便在同一个语句中引用。这里并未引用,所以别名失去了意义,但为了语法严禁还是起了。


PQL的帮助文档大部分都看不懂,写一个完整的PQL需要注意哪些地方呢?
霍爷用
判断flop是否出现三张同花:
flushingBoard(flop)
来举例说明一下行吗?

举例说明flushingBoard的用法:
AK offsuit在三同花牌面,面对top 10%但非AA/KK的牌,平均有多少equity?

select
avg(riverEquity(PLAYER_1)) as PLAYER_1_equity1
from game='holdem', syntax='Generic',
     PLAYER_1='AxKy',
     PLAYER_2='10%!AA!KK'
where flushingBoard(flop) /* the board is flushing on the flop */

答案:58.3%
40#
 楼主| Howard 发表于 2014-10-21 22:21:24 | 只看该作者
修道 发表于 2014-10-21 01:04
或许我们可以自己在软件里写一个
判断花顺翻牌面()
返回逻辑值

可否介绍一下你的软件?我对能写软件的都非常钦佩
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|智游城论坛

GMT+8, 2024-4-28 14:28 , Processed in 0.047577 second(s), 7 queries , Redis On.

Powered by Discuz! X3.2

© 2001-2012 Comsenz Inc.

返回顶部