You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
注册

游戏中最优敌人攻击顺序判定方法是否正确?

你的思路不正确

你的核心问题在于,计算“规避伤害”时用了固定的总击杀时间推导,但这个逻辑仅在两两比较时偶然等价于正确策略,当敌人数量≥3时,会出现优先级选择错误,导致最终受到的伤害更高。

举个反例:

  • 敌人1:每秒伤害3,击杀耗时1
  • 敌人2:每秒伤害4,击杀耗时2
  • 敌人3:每秒伤害6,击杀耗时3
    总击杀时间为1+2+3=6

按你的思路计算规避伤害:

  • 敌人1:(6-1)*3=15
  • 敌人2:(6-2)*4=16
  • 敌人3:(6-3)*6=18
    你会优先击杀敌人3,再杀敌人2,最后杀敌人1,总受到伤害为:
    3*(3+4+6) + 2*(3+4) +1*3 = 39+14+3=56

但正确的最优顺序应该是优先击杀每秒伤害/击杀耗时比值更高的敌人(敌人1的比值3/1=3,敌人2为4/2=2,敌人3为6/3=2),也就是先杀敌人1,再杀任意剩下的敌人,总受到伤害为:
1*(3+4+6) +2*(4+6)+3*6=13+20+18=51,明显比你的思路结果更低。

正确的判断逻辑

对于任意两个敌人A和B,判断谁优先击杀的标准是:
A.damageRate * B.timeToKill > B.damageRate * A.timeToKill时,先杀A更优。
等价于优先击杀每秒伤害与击杀耗时的比值(damageRate/timeToKill)更大的敌人。

这个策略的本质是,优先处理“单位时间输出更高”的敌人——每多让这类敌人活一秒,你受到的额外伤害更多,所以越早击杀越划算。

内容的提问来源于stack exchange,提问作者dumbquestionasker

火山引擎 最新活动