智游城

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 20129|回复: 41
打印 上一主题 下一主题

计算各种Omaha相关概率

[复制链接]
跳转到指定楼层
1#
Howard 发表于 2013-6-22 14:08:23 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
德州那边算的不过瘾,来奥马哈版开个分店。版主们恕罪

读人您自己读,计算我帮您算

计算举例:
1. 我们有AA**时,如果我们翻牌领先,有多大可能对手转牌反超,然后我们河牌反反超?

select count(HvHequity(villain, turn) > 0.5 and winsHi(hero)) as suckAndResuck
from game='omahahi', hero='AA**', villain='****'
where HvHequity(hero, flop) > 0.5

答案:2.23%

2. 单挑时,两个“不错”的起手牌,有多大可能赢家牌型为nothing(无对)?

select count(winningHandType() = highcard)
from game="omahahi", hand1="15%", hand2="15%"

答案:0.12%

3. 9人桌,Q-hi 翻牌,有人有顶暗三的概率多大?

select count(handshaving(inRange, "QQ**") = 1) as somebody_flopped_it
from game="omahahi", board="QsTd4c", p1="****", p2="****", p3="****", p4="****", p5="****", p6="****", p7="****", p8="****", p9="****"


答案:13.3%

4. 单挑时,无对、无顺面、无花面的三无干燥牌面,两随机牌,赢家牌型是什么?
select histogram(winningHandType())
from game="omahahi", board="9s8dKc3sAh", hand1="****", hand2="****"


答案:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏1
42#
修道 发表于 2014-10-22 10:26:03 | 只看该作者
Howard 发表于 2014-10-21 22:29
这个还真的可行。最大的动力就是通过写这个文档,把我自己不熟悉、不了解的地方都覆盖一下,一直想做这个 ...

感谢霍爷,握手!
41#
 楼主| Howard 发表于 2014-10-21 22:29:11 | 只看该作者
修道 发表于 2014-10-21 01:13
如果霍爷能抽空写一个PQL的中文使用文档的话,对国内牌手来说将是一个福音,善莫大焉! ...

这个还真的可行。最大的动力就是通过写这个文档,把我自己不熟悉、不了解的地方都覆盖一下,一直想做这个但没有足够动力,如果变学习边翻译并发出来,相信动力肯定够了

而且这个对于软件原作者来说也是个好事儿,帮他推销软件了
40#
 楼主| Howard 发表于 2014-10-21 22:21:24 | 只看该作者
修道 发表于 2014-10-21 01:04
或许我们可以自己在软件里写一个
判断花顺翻牌面()
返回逻辑值

可否介绍一下你的软件?我对能写软件的都非常钦佩
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%
38#
修道 发表于 2014-10-21 15:13:07 | 只看该作者
如果霍爷能抽空写一个PQL的中文使用文档的话,对国内牌手来说将是一个福音,善莫大焉!
37#
修道 发表于 2014-10-21 15:04:58 | 只看该作者
或许我们可以自己在软件里写一个
判断花顺翻牌面()
返回逻辑值
参数,1表示flop,2表示turn,3表示river

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)
来举例说明一下行吗?
35#
修道 发表于 2014-10-21 14:14:47 | 只看该作者
Howard 发表于 2014-10-21 00:08
这部分看不太懂。要写出什么代码?
omaha牌力排名的话,在ProPokerTool里面可以直接用百分数,比如 15%代 ...

非常感谢霍爷!!!!!
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)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|智游城论坛

GMT+8, 2024-11-24 09:30 , Processed in 0.047036 second(s), 8 queries , Redis On.

Powered by Discuz! X3.2

© 2001-2012 Comsenz Inc.

返回顶部