海克斯大乱斗:用Python和微积分证明,霞到底该带“灵巧”还是“点亮他们”? 摘要朋友问了我一个看似简单的问题符文“灵巧”和“点亮他们”哪个更强这引发了我对AD输出模型的深度思考。本文不谈感觉只谈数学。我们将通过建立DPS函数、求解平衡点并利用Python进行三维可视化彻底搞懂这两个符文的收益边界。1. 问题的起源Deft 与 霞灵巧Deft的英文直译是“熟练”也是我们熟知的韩国ADC选手金赫奎的ID。但在数学模型里它只是一个冰冷的变量。今天我们要解决的问题是对于英雄霞Xayah在18级时面对不同的出装攻击力与攻速搭配“灵巧”提供0.6额外攻速和“点亮他们”提供额外伤害和特效究竟该如何抉择!2. 建立数学模型DPS的博弈为了量化收益我们需要建立两个DPS每秒伤害公式并通过除法比较来确定优劣。符号定义xxx基础攻击力 (霞为60)yyy额外攻击力sss额外攻速加成 (比如攻速鞋、飓风提供的数值)rrr攻击频率基础值 (在比较中会被约掉)APAPAP法术强度 (为简化模型设为0)2.1 “点亮他们”的DPS公式 (DlD_lDl​)根据先前的博客分析“点亮他们”在18级时提供了一次性爆发和特效。其普攻伤害公式为Al80x1.35y A_l 80 x 1.35yAl​80x1.35y因此DPS为Dlr(80x1.35y)(1s) D_l r(80 x 1.35y)(1 s)Dl​r(80x1.35y)(1s)2.2 “灵巧”的DPS公式 (DdD_dDd​)“灵巧”不增加攻击力直接增加0.6的攻击速度Ddr(xy)(1s0.6)r(xy)(1.6s) D_d r(x y)(1 s 0.6) r(x y)(1.6 s)Dd​r(xy)(1s0.6)r(xy)(1.6s)2.3 构建比较函数为了消除单位差异我们计算比率RRRRDlDd(80x1.35y)(1s)(xy)(1.6s) R \frac{D_l}{D_d} \frac{(80 x 1.35y)(1 s)}{(x y)(1.6 s)}RDd​Dl​​(xy)(1.6s)(80x1.35y)(1s)​将霞的基础攻击力x60x60x60代入公式简化为RXayah(1401.35y)(1s)(60y)(1.6s) R_{Xayah} \frac{(140 1.35y)(1 s)}{(60 y)(1.6 s)}RXayah​(60y)(1.6s)(1401.35y)(1s)​判定法则若R1R 1R1点亮他们更强。若R1R 1R1灵巧更强。3. 寻找平衡点临界公式的推导我们令R1R1R1求解sss关于yyy的函数这条曲线就是二者的分水岭。(1401.35y)(1s)(60y)(1.6s) (140 1.35y)(1 s) (60 y)(1.6 s)(1401.35y)(1s)(60y)(1.6s)经过展开、移项和合并同类项过程略详见代码注释我们得到最终的平衡函数s0.25y−440.35y80 s \frac{0.25y - 44}{0.35y 80}s0.35y800.25y−44​数学解读这个公式告诉我们当你拥有yyy点额外攻击力时你需要多少额外攻速sss才能让两个符文收益持平。4. Python 三维可视化全局视角为了直观看到这个函数的形态我使用 Python 绘制了三维曲面图。X轴是额外攻击力Y轴是额外攻速Z轴是比率RRR。灰色平面代表R1R1R1。importnumpyasnpimportmatplotlib.pyplotaspltfrommpl_toolkits.mplot3dimportAxes3D# 定义网格数据ynp.linspace(0,300,100)# 额外攻击力snp.linspace(0,3.0,100)# 额外攻速Y,Snp.meshgrid(y,s)# 霞的参数x_base60# 计算 DPS 比率 Z Dl / Ddnumerator(1401.35*Y)*(1S)denominator(60Y)*(1.6S)Znumerator/denominator# 绘图figplt.figure(figsize(12,8))axfig.add_subplot(111,projection3d)# 绘制曲面surfax.plot_surface(Y,S,Z,cmapcoolwarm,alpha0.8,edgecolornone)# 绘制 z1 的平衡平面plane_1np.ones_like(Z)ax.plot_surface(Y,S,plane_1,colorgrey,alpha0.3)# 设置标签ax.set_xlabel(额外攻击力 (y))ax.set_ylabel(额外攻速加成 (s))ax.set_zlabel(DPS比率 (Dl/Dd))ax.set_title(霞点亮 vs 灵巧 收益曲面)# 添加颜色条fig.colorbar(surf,label比率值)plt.show()图表分析曲面在灰色平面上方红色区域点亮赢。曲面在灰色平面下方蓝色区域灵巧赢。从图中可以清晰地看到曲面大部分时间在平面上方这意味着在大多数攻速状态下点亮他们似乎更稳。但别急我们还要看二维切片。5. 二维深度分析霞的专属决策图三维图虽然酷炫但不够直接。我们把sss和yyy抽出来画出刚才推导出的平衡曲线。importmatplotlib.pyplotaspltimportnumpyasnp# 设置中文字体plt.rcParams[font.sans-serif][SimHei]plt.rcParams[axes.unicode_minus]False# 定义变量范围 (聚焦于关键区间)ynp.linspace(150,300,500)# 计算平衡点 ss(0.25*y-44)/(0.35*y80)# 绘图plt.figure(figsize(10,6))plt.plot(y,s,labelr平衡曲线 $s \frac{0.25y - 44}{0.35y 80}$,colorblue,linewidth2)plt.axhline(0,colorblack,linewidth0.8,linestyle--)# 标出关键点plt.scatter([176],[0],colorred,zorder5)plt.annotate(临界点 (176, 0),xy(176,0),xytext(180,0.1),arrowpropsdict(facecolorred,shrink0.05))# 区域填充plt.fill_between(y,s,-1,where(s-1),interpolateTrue,colorred,alpha0.1)plt.text(200,-0.4,灵巧更强,colorred,fontsize12,alpha0.8)plt.fill_between(y,s,1.5,where(s1.5),interpolateTrue,colorblue,alpha0.1)plt.text(200,0.2,点亮更强,colorblue,fontsize12,alpha0.8)# 设置图表属性plt.title(霞点亮他们 vs 灵巧 - 收益平衡点分析)plt.xlabel(额外攻击力 (y))plt.ylabel(额外攻速加成 (s))plt.xlim(175,300)plt.ylim(-0.6,0.6)plt.grid(True,linestyle--,alpha0.6)plt.legend()plt.show()终极结论谁才是版本答案通过观察上图的收益平衡点分析我们可以得出非常明确的出装与符文指导残酷的现实灵巧的“生存空间”极小请注意图中的临界点 (176, 0)。当额外攻击力y176y 176y176时平衡曲线位于s0s 0s0的区域。由于实际游戏中额外攻速sss几乎不可能为负数我们永远处于曲线的“上方”区域除非遇到对面有个内瑟斯并且专门给你枯萎状态此时“点亮他们”在所有情况下都强于“灵巧”。当额外攻击力y176y 176y176时只有当你堆了极高的攻击力且攻速加成sss低于那条蓝色曲线时“灵巧”才有优势。反直觉的真相通常我们认为“灵巧”加攻速适合攻速流“点亮”加伤害适合攻击力流。但计算表明“点亮他们”提供的伤害乘区那个801.35y801.35y801.35y的系数实在太香了。除非你玩的是那种极端攻击力、极低攻速的“一刀流”怪胎即落在红色区域否则“点亮他们”几乎是霞的必选项。