zkort 發表於 2021-5-7 05:32

一个关于ABB面的数学计算问题

一、目前我们可以知道,当看到自己持有手牌后,精确计算flop中牌的概率,比如:With 2 non-pair cards, the probability of flopping: At least a pair (using your pocket cards) from two non-pair cards - 2.1/17方片<> 3红桃<> 7梅花<> J梅花<> 2红桃<> or better32.4% FLOP自己手持两张单牌,那么可以确定32.4%的概率至少可以在flop成1对或者更好。二、关于贝叶斯定理贝叶斯定理由英国数学家贝叶斯 ( Thomas Bayes 1702-1761 ) 发展,用来描述两个条件概率之间的关系,比如 P(A|B) 和 P(B|A)。按照乘法法则,可以立刻导出:P(A∩B) = P(A)*P(B|A)=P(B)*P(A|B)。如上公式也可变形为:P(B|A) = P(A|B)*P(B) / P(A)。举例:现分别有 A、B 两个容器,在容器 A 里分别有 7 个红球和 3 个白球,在容器 B 里有 1 个红球和 9 个白球,现已知从这两个容器里任意抽出了一个球,且是红球,问这个红球是来自容器 A 的概率是多少?假设已经抽出红球为事件 B,从容器 A 里抽出球为事件 A,则有:P(B) = 8/20,P(A) = 1/2,P(B|A) = 7/10,按照公式,则有:P(A|B) = (7/10)*(1/2) / (8/20) = 0.875贝叶斯公式为利用搜集到的信息对原有判断进行修正提供了有效手段。在采样之前,经济主体对各种假设有一个判断(先验概率),关于先验概率的分布,通常可根据经济主体的经验判断确定(当无任何信息时,一般假设各先验概率相同),较复杂精确的可利用包括最大熵技术或边际分布密度以及相互信息原理等方法来确定先验概率分布。那么,根据定理,我们可以从结论(已经拿出的红球)反过来推导出从那个箱子拿出的概率大。三、如何根据已经发出的牌型推断对手中特定牌型的概率?假定:9人桌,只有hero和对手入池,两人range都是所有牌的range,不考虑位置因素、不考虑情绪因素,两人都是两张单牌(非起手对),flop为ABB牌型(比如779),hero并没有中7,成为明3条(777),已经确定的概率如下:(1)任意一个玩家被发到两张的概率为1-6%=94%(玩家拿到任意口袋对概率为5.88%,近似计算为6%)(2)flop发出ABB牌面的概率是17%(3)Trips (using one of your pocket cards) from two non-pair cards - 73/17方片<>2方片<>7梅花<>7红桃<>9黑桃<>1.35% FLOP当玩家自己持有两张单牌,且flop发出来玩家自己中明3的概率是1.35%(近似计算为1.4%)那么,请问,根据已经发出的结果,反推对手中了明3条(777)的概率是多大?

Jimihandrix 發表於 2021-5-7 05:51

能用计算机完成的工作就不手动完成。通过软件计算,得到的结果是:select count(((NOT minFlopHandCategory(PLAYER_1,FLOPTRIPS)) AND minFlopHandCategory(PLAYER_2,FLOPTRIPS))) /* How often ((NOT PLAYER_1 flop hand category at least trips) AND PLAYER_2 flop hand category at least trips) */ as COUNT1from game='holdem', syntax='Generic',PLAYER_1='ro',PLAYER_2='ro'where pairedBoard(flop) /* the board is paired on the flop */8.0168%

JCreeks11 發表於 2021-5-7 06:08

这个问题是这样的:如果我们要用到贝叶斯公式,就必须给出先验概率,也就是所谓对手手牌的“范围”。比如对手起手牌包含87s,但肯定没有72o之类的。如果没有任何先验信息,就是假设对手任何两张牌的概率都是一样的,那么这时候对手手里存在7的概率,跟算转牌河牌会不会出7的算法是一样的。剩下两张7,有两张牌的可能,大概是2*4=8%。估算就很准了。但现实中绝对不到8%,因为对手手里可能没有比如J7o,74o-72o这些牌。从数学上讲,起手牌的先验概率不是平的,有些起手牌的先验概率大一些,有一些小一些。根据贝叶斯公式,先验概率会影响后验的概率。

Jimihandrix 發表於 2021-5-7 06:24

JCreeks11 发表于 2016-8-22 05:08这个问题是这样的:如果我们要用到贝叶斯公式,就必须给出先验概率,也就是所谓对手手牌的“范围”。比如 ...我想我理解你的意思了。当然,对于不同的翻牌前范围中明三的概率肯定是不同的。我的计算是基于随机的两张单牌,对于不同的翻牌前范围,计算也是非常简单的。

zkort 發表於 2021-5-7 06:34

Jimihandrix 发表于 2016-8-21 23:58能用计算机完成的工作就不手动完成。通过软件计算,得到的结果是:select count(((NOT minFlopHandC ...这个软件不错,什么软件?

Jimihandrix 發表於 2021-5-7 07:00

propokertools

Howard 發表於 2021-5-7 07:03

Jimihandrix 发表于 2016-8-21 09:58能用计算机完成的工作就不手动完成。通过软件计算,得到的结果是:select count(((NOT minFlopHandC ...感觉“Player1无trips” 应该放到where下面,而不是在select里面题意说的自己没有trips貌似是个已知条件。朋友,你用PQL这么娴熟,以后多交流经验啊!我有很多疑问,希望能得到解答

Jimihandrix 發表於 2021-5-7 07:20

Howard 发表于 2016-8-23 00:07感觉“Player1无trips” 应该放到where下面,而不是在select里面题意说的自己没有trips貌似是个已知条 ...霍老师,我也有很多问题想向您请教呢!

Jimihandrix 發表於 2021-5-7 07:46

Howard 发表于 2016-8-23 00:07感觉“Player1无trips” 应该放到where下面,而不是在select里面题意说的自己没有trips貌似是个已知条 ...感谢霍老师的指正,经过修改后的计算如下:select count(minFlopHandCategory(PLAYER_2,FLOPTRIPS)) /* How often PLAYER_2 flop hand category at least trips */ as COUNT1from game='holdem', syntax='Generic',PLAYER_1='ro',PLAYER_2='ro'where (pairedBoard(flop) AND (NOT exactFlopHandCategory(PLAYER_1,FLOPTRIPS))) /* (the board is paired on the flop AND (NOT PLAYER_1 flop hand category is trips)) */8.7825%

edindzeko 發表於 2021-5-7 08:08

Jimihandrix 发表于 2016-8-23 03:20感谢霍老师的指正,经过修改后的计算如下:select count(minFlopHandCategory(PLAYER_2,FLOPTRIPS)) /*...这个计算的概率比第一个高是不是因为这个计算进了 card removal 的效果(真实情况也是这样的)但是第一个没有考虑,因为第一个 select 里面的两个概率是独立计算的?
頁: [1]
查看完整版本: 一个关于ABB面的数学计算问题