如何计算概率矩阵的组合(游戏中的胜率排名)



假设我们有一个有4名玩家的游戏。游戏结束后,我们将根据4名玩家的得分获得排名,排名1是最好的,排名4是最差的。我创建了一个预测玩家排名的模型。详细地说,我创建了两个模型来预测谁将进入游戏的等级1和等级2:

  • 模型A预测谁在排名1中获胜的概率
  • 模型B预测谁在排名2中获胜的概率

所有的概率输出都将在这个矩阵中:

Rank2(prob)
播放器ID Rank1(prob)
播放器A 0.7 0.8
播放器B 0.2 0.05
播放器C 0.1 0.1
播放器D 0.1 0.05

如果在我们知道玩家A赢得第一名后,玩家B赢得第二名的机会确实发生了变化(因为玩家A不能同时获得第一名和第二名),那么答案应该计算如下:

玩家A赢得第一名和玩家B赢得第二名的概率为(A先赢)*(B先赢,A赢)=0.7*0.25=0.175

自(B赢得第二名,A赢得)=0.05/(0.1+0.05+0.05)=0.25

玩家A赢得第二名和玩家B赢得第二位的概率为(B赢得第一名)*(A赢得第二名,B赢得)=0.8*0.84=0.168

自(A赢得第二名,B赢得)=0.8/0.95=0.84

根据总概率定律,由于上述两个事件不能同时发生:

因此,任何一种情况发生的概率都是

0.175+0.168= 0.343

将其放入代码中,假设矩阵的名称为";mat";

ans = mat[0][0]*(mat[1][1]/(1-mat[0][1)) + mat[1][0]*(mat[1][0]/(1-mat[1][1]))
print(ans)

输出:

0.343

如果玩家B获得第二名的概率没有改变,即使我们知道玩家A赢得了第一名(意味着他们是独立的),那么:

球员A排名第一,球员B排名第二的概率=0.7*0.05=0.0345

球员A排名第二,球员B排名第一的概率=0.8*0.2=0.16

根据总概率定律,由于上述两个事件不能同时发生:

因此,任何一种情况发生的概率是0.16+0.0345=0.1945

将其放入代码中,假设矩阵的名称为";mat";

ans = mat[0][0]*mat[1][1] + mat[0][1]*mat[1][0]
print(ans)

输出:

0.1945

希望我能帮忙:)如果你有任何问题,请随时在评论中提问

前提

首先,你的前提中有一个bug。你预测玩家a排名第一的概率为0.7,而你预测同一玩家a在同一场比赛中排名第二的概率为0.8。值为1表示完全确定,值为0表示否定的完全确定。现在,你的

0.7+0.8=1.5

这违反了布尔代数的基本框架,因为对同一事件的不同结果的概率求和会得到比支持的最大值1更高的值。

此外,玩家A的排名应该低于2的概率,所以我们应该有

p(第一个)+p(第二个)+p(下一个)=1

对于任何玩家来说。如果这是错误的(在你的情况下也是错误的),那么前提是不正确的。

该前提的另一个问题可以从对Rank1(prob)求和得到1.1的事实中看出,尽管对Rank2(prob)求和我们得到1的期望值。

但在这一点上,让我们关注排名1(prob)。

我们知道,作为一个绝对确定的事实(概率为1),四个玩家中的一个将排名为1,这意味着他们的概率应该有一个恰好等于1的和。由于在您的情况下是1.1(0.7+0.2+0.1+0.1),我们看到您的前提存在另一个问题。因此,首先:你需要修复你的前提,以确保它们与现实相对应,并且不会违反布尔逻辑的基本框架(违反这个框架是不符合现实的绝对肯定标志)

逻辑与概率

在概率计算中,应用逻辑并不困难。例如,如果你想知道p(X)AND p(y)是否为真,那么你可以这样计算:

p(X和Y)=p(X)*p(Y)

解释:概率本身已经与保证(值为1)结合,如p(X)=1*p(X)。0<=p(X)<=当你用p(Y)计算逻辑AND的结果时,1是完整的问题空间,因此你计算了一个进一步的联合,得到p(X)*p(Y)

在逻辑OR 的情况下

计算析取是作为

p(X或Y)=p(X)+p(Y)-p(X和Y)=p(X)+p(Y)-p(X)*p(Y

解释:直观地说,逻辑OR的结果应该是这些情况的总和,但有一点需要注意:p(X AND Y)已经作为一种可能性包含在p(X)和p(Y)中,所以当你计算p(X)+p(Y)时,它会出现两次(以隐藏的方式),因此,你需要减去它,以确保它被精确地计算到结果中一次。

计算公式

我们很想知道是PlayerA第一,PlayerB第二,还是PlayerB第一,PlayerCA第二。

由于你的前提有一些错误,我不会使用你的价值观。相反,我将把Rank1(A)表示为玩家A排名第一的概率,依此类推

因此:

p(秩1(A)和秩2(B))=秩1(A)*秩2(B)(1)

类似:

p(秩1(B)与秩2(A))=秩1(B)*秩2(A)(2)

因此:

p((Rank1(A)AND Rank2(B))OR

我们知道p((Rank1(A)AND Rank2(B))AND(Rank1(B)AND Rank2(A))正是0,因为这是自相矛盾的,因为它假设PlayerA同时排名第一和第二,并且它类似地假设PlayerB同时排名第一和第二。因此:

p(Rank1(A)AND Rank2(B))+p

让我们同时应用公式(1)和(2):

p(Rank1(A)AND Rank2(B))+p(Rank1(B)AND Rank2(A))=Rank1

相关内容

  • 没有找到相关文章

最新更新