用多元函数条件极值解一道经典数值策划题(一)

发表于2020-05-18
评论0 4.8k浏览

  前段时间看到一套数值策划笔试题,其他的都比较简单,有一道稍有难度,题目如下:

 

  假定游戏里玩家可以自由分配属性点数到攻击力,防御力和生命值上去,攻击间隔统一为1秒(为了计算过程简化,不考虑取整因素,可以把伤害认为是持续伤害,总伤害严格等于攻击时间乘以攻击力),现在玩家拥有100点属性点,怪物的攻击力为10,防御力为30,生命值为60,称一场战斗过程中自身所损失的生命值与自身的总生命值的比值为损血百分比p,玩家希望杀死怪物后,损血百分比最小化(如果玩家无法战胜怪物,那么损血百分比就是100%),在以下两种伤害结算公式的情形下,分别计算玩家如何分配属性点数,能够达到损血百分比p最小化这个目的(a>0)

  情形一:最终伤害=攻击方攻击力-a*防御方防御力

  情形二:最终伤害=攻击方攻击力/(1+a*防御方防御力)

  讨论a取值的不同如何影响p?

 

  我百度了一下,题目搜到很多,但却没有一份完整的解答过程,甚至连正确的答案都没有。于是我就尝试做了一下,这道题需要用到多元函数的条件极值和拉格朗日乘数法,先给答案:

 情形一:减法公式

1. 

[公式]

时:给防御分配0点,攻击分配50+15a点,生命分配50-15a可使损血百分比p最小,此时p值为

[公式]

2. 

[公式]

时:给防御分配10/a点,攻击分配50+15a-5/a点,生命分配50-15a-5/a点可使损血百分比p最小,此时p值为0

3. 

[公式]

时:玩家无论如何分配都无法战胜怪物(怪也不一定能杀死玩家,但根据题意也算玩家失败),此时p值为1

 情形二:除法公式

1. 

[公式]

时:给防御分配0点,攻击和生命各分配50点,可使损血百分比p最小,此时p指为

[公式]

2. 

[公式]

时:给防御分配 

[公式]

点,攻击和生命各分配 

[公式]

点,可使损血百分比p最小,此时p值为

[公式]

总结:

  1. 减法公式下,攻击破不了对方的防就无法造成伤害。除法公式下则不会有不破防的问题,无论对方防御多高都可以造成伤害。
  2. 当防御的作用过低时,不加防,平均的加攻和生命是最优选择


 

  • 允许他人重新传播作品,但他人重新传播时必须在所使用作品的正文开头的显著位置,注明用户的姓名、来源及其采用的知识共享协议,并与该作品在磨坊上的原发地址建立链接
  • 可对作品重新编排、修改、节选或者以作品为基础进行创作和发布
  • 可将作品进行商业性使用

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

标签: