文明3吧 关注:16,993贴子:439,628
  • 19回复贴,共1

文明3战斗获胜总概率计算公式x是单回合胜率,x=攻方攻击力/

只看楼主收藏回复

文明3战斗获胜总概率计算公式
x是单回合胜率,x=攻方攻击力/(攻方攻击力+防方防御力),(考虑各种加成)。
m1是攻击方生命值,m2是防御方生命值
∑是求和符号,C是组合数(不清楚的话请百度)
则总胜率P应该满足下图关系


IP属地:浙江来自iPhone客户端1楼2020-03-19 16:51回复
    我之前看过一个攻略贴(现在找不到了),上面有关于胜率的介绍,不过没有具体公式。我是根据那上面介绍的方法推算出具体公式,但是否符合实际情况并不容易验证。


    IP属地:浙江来自iPhone客户端2楼2020-03-19 16:53
    回复
      2025-08-30 16:11:32
      广告
      不感兴趣
      开通SVIP免广告
      以下是具体介绍:
      根据攻略上说,此游戏的战斗机制是:战斗分为很多回合,每回合必有一方获胜,另一方掉血。攻击方在一回合中获胜的概率=攻击方的攻击力/(攻击方的攻击力+防御方的防御力),即公式中的x。相反,攻击方在一回合中掉血的概率就是(1-x)。


      IP属地:浙江来自iPhone客户端3楼2020-03-19 19:05
      回复
        以三血单位攻击三血单位为例,攻击方一回合中获胜的概率仍记为x。
        情况1:攻击方无损伤获胜
        这种情况一共有三回合,并且三回合攻击方都胜利了
        即: 胜 胜 胜
        每一个“胜”出现的概率都为x,因此这种情况出现的概率=x^3
        情况2:攻击方损一血获胜
        这种情况一共四回合,三胜一败,并且最后一回合一定是胜
        这样的话就有三种结果
        胜 胜 败 ,胜
        胜 败 胜 ,胜
        败 胜 胜 ,胜
        (由于最后一个胜位置不变,我把它用逗号隔开,方便观察规律)
        其中,出现一个“胜”的概率胜x,出现一个“败”的概率是(1-x),而一共有三种结果
        所以,这种情况出现的概率=3x^3·(1-x)
        情况3:攻击方损2血获胜
        这种情况一共五回合,三胜二败、并且最后一回合一定是胜
        这样的话就有六种结果
        败 败 胜 胜 ,胜
        败 胜 败 胜 ,胜
        败 胜 胜 败 ,胜
        胜 败 败 胜 ,胜
        胜 败 胜 败 ,胜
        胜 胜 败 败 ,胜
        同理,这种情况出现的概率=6x^3·(1-x)^2
        攻击方一共三血,所以最多只能损2血获胜
        总的获胜概率就是把以上三种情况的概率相加


        IP属地:浙江来自iPhone客户端4楼2020-03-19 19:05
        回复
          观察上面概率的计算步骤,我们发现,最麻烦的就在于列举每一回合的胜败情况(这只是三血打三血,要是五血打五血,列举起来就非常麻烦),但其实我们有更简便的方法。这需要用到组合数C。
          观察上述损一血的所有情况:
          胜 胜 败 ,胜
          胜 败 胜 ,胜
          败 胜 胜 ,胜
          逗号右边的“胜”始终不变,可以不用管
          左边相当于选三个“胜”中的一个换成“败”
          可以用组合数C(3,1)计算出有3种选法
          损2血的情况:
          败 败 胜 胜 ,胜
          败 胜 败 胜 ,胜
          败 胜 胜 败 ,胜
          胜 败 败 胜 ,胜
          胜 败 胜 败 ,胜
          胜 胜 败 败 ,胜
          同样可以看作把4个“胜”中选出两个变成“败”
          用组合数计算选法种数:C(4,2)=6 种
          这样就避免了列举带来的麻烦


          IP属地:浙江来自iPhone客户端5楼2020-03-19 19:12
          收起回复
            最后,我们把结论一般化,用m1血的单位攻击m2血的单位。
            类比上面3血的计算方法,可以看出,攻击方可以损失的血量从0一直到(m1-1)
            所以大情况一共有m1种
            每一种大情况中的小情况可以用组合数算出
            如:损0血的情况有C(m2-1,0)=1种
            损1血的情况有C(m2,1)=m2 种
            损2血的情况有C(m2+1,2)种
            …………
            损m1-1血的情况有C(m2-1+m1-1,m1-1)种
            规律:损n血的情况有C(m2+n-1,n)种
            其概率为C(m2+n-1,n)•x^m2•(1-x)^n
            其中,n从0一直到m1-1
            总概率就把损0血一直到损m1-1血的概率加起来
            这就是开头给出的公式


            IP属地:浙江来自iPhone客户端6楼2020-03-19 19:13
            回复
              大佬


              来自Android客户端7楼2020-03-19 22:27
              回复
                没想那么多,一直是人海战术


                IP属地:广东来自Android客户端8楼2020-03-20 08:40
                回复
                  2025-08-30 16:05:32
                  广告
                  不感兴趣
                  开通SVIP免广告
                  谢谢


                  IP属地:马来西亚来自iPhone客户端9楼2020-03-20 10:18
                  回复
                    对的,我胜率计算器就是同样的原理设计的


                    IP属地:山东来自Android客户端10楼2020-03-20 13:54
                    收起回复
                      真的是**


                      IP属地:山西来自Android客户端11楼2020-03-23 23:31
                      回复