zxl0714 zxl0714
关注数: 20 粉丝数: 56 发帖数: 3,727 关注贴吧数: 15
【程序】使用程序求解DK与娜迦PK的胜率 目标计算出DK与娜迦N vs N的时候DK的胜率(因为DK先动)。 首先大致分两种情况: 1)直接互砍 2)DK第一轮等待双击,之后互砍 由于这两种策略带来的胜率差异较大,所以需要分别求解。当然还有其它策略,不过需要约定DK不能防御,这样就不会出现两边防御到世界末日的情况。 废话不多说,上DK胜率表: 1v1 22.57% 24.49% 2v2 20.04% 63.53% 3v3 17.67% 42.02% 4v4 18.85% 64.38% 5v5 25.10% 59.71% 6v6 18.55% 46.81% 7v7 20.09% 48.85% 8v8 21.86% 56.86% 9v9 21.15% 64.67% 10v10 21.93% 59.97% 11v11 21.09% 54.91% 12v12 21.53% 54.84% 13v13 22.71% 59.20% 14v14 20.63% 54.84% 15v15 22.00% 57.04% 16v16 22.59% 56.32% 17v17 21.76% 55.95% 18v18 21.94% 57.72% 19v19 21.44% 57.40% 20v20 21.64% 58.49% 左面代表1)策略的胜率,右面代表2)策略的胜率 下面说一下这个程序的工作原理。首先计算DK与娜迦产生每种伤害的概率,伤害公式来自英雄宝典。多个生物产生伤害的概率是独立计算后叠加的,不时简单的相乘。 设f( i, j, 0 )表示整体有i血的DK先手打整体有j血的DK的DK的胜率 设f( i, j, 1 )表示整体有j血的娜迦反击整体有i血的娜迦的娜迦胜率 设f( i, j, 2 )表示整体有j血的娜迦先手打整体有i血的DK的娜迦的胜率 设f( i, j, 3 )表示整体有j血的娜迦爆士气后打整体有i血的DK的娜迦的胜率(或者说是娜迦本次攻击不可能爆士气的胜率) 那么设产生的伤害为k,产生这个伤害的概率为p( k ),有如下转移方程: f( i, j, 0 ) = sum( p( k ) * ( 1 - f( i, j - k, 1 ) ) * NOTCRITICAL + sum( p( k )* ( 1 - f( i, j - k, 1 ) ) * CRITICAL f( i, j, 1 ) = sum( p( k ) * f( i - k, j, 2 ) ) f( i, j, 2 ) = sum( p( k ) * ( 1 - f( i - k, j, 0 ) ) ) * NOTMORALE + sum( p( k )* f( i - k, j, 3 ) ) * MORALE f( i, j, 3 ) = sum( p( k ) * ( 1 - f( i - k, j, 0 ) ) ) 这样就可以比较精确的推算出DK与娜迦的胜率。 欢迎大伙指出不足之处,谢谢,楼下附程序代码。
1 下一页