血攻防对战
/*论述借用c++代码格式,这不是真的代码*/
#include<iostream>
struct character
{int hp,ap,dp}
int allhurt
(character x→character y)
{return wave*h(x→y)}ah
void main()
{character player,emeny
p=player={q,r ,t}
e=emeny={d,c,b}
//q>0,d>0,r>b≥0,c≥t≥0
int h=hurt
(character x→character y)
{return x.ap-y.dp}
h(p,e)=r-b
h(e,p)=c-t
ah(p→e)/ah(e→p)=
h(p→e)/h(e→p)=(r-b)/(c-t)
if ah(p→e)=d,
h=ah(e→p)=(c-t)d/(r-b)
const int s>0 ; if r+t=s,
t≥0,-t=r-s≤0,r≤s,s>r>b≥0,
when r∈(b,s] ,
h(r)=d(r-s+c)/(r-b)≥0,h'(r)
=d[(r-b)-(r-s+c)]/(r-b)^2
=d(s-c-b)/(r-b)^2
r>b,r-b>0,(r-b)^2>0,d>0,
h'/(s-c-b)=d/(r-b)^2>0
h(b+△)
=d(b+△-s+c)/(b-△-b)
=d(b+c-s+△)/△
=d(b+c-s)/△+1//△∈(0,1)
1) if s-c-b>0,s>c+b,b+c-s<0
//若我方攻防和高于敌方
h'>0,h↗ when r∈(b,s]
h(b+△)→-∞(△→0+)
min{h(r)|r∈(b,s],h≥0}=0=h(s-c)
when r=s-c,
r+c=s,c=t
//升我防到与敌攻相等则无损
2) if s-c-b=0,s=c+b
//若我方攻防和等于敌方
h'≡0,h(r)≡d when r∈(b,s]
/*无论攻防为定义域内何值,都与敌等伤,故杀敌受伤消耗的血量就是敌人的总血量*/
2) if s-c-b<0,s<c+b,b+c-s<0
//若我方攻防和小于敌方
h'<0,h↘ when r∈(b,s]
h(b+△)→+∞(△→0+)
min{h(r)|r∈(b,s],h≥0}
=h(s)=dc/(s-b)
/*升我攻到最大等于攻防和,降我防到最低为零时,损伤会最小,最小值与敌血和敌攻都成正比,与我对敌的回合伤害成反比*/
string conclusion=
"结论:在攻防和固定的情况下,攻防分配与敌我攻防和对比有关。若我方攻防和高于敌方,升我防到与敌攻相等则无损;若我方攻防和等于敌方,无论攻防为定义域内何值,都与敌等伤,故杀敌受伤消耗的血量就是敌人的总血量;若我方攻防和小于敌方,升我攻到最大等于攻防和,降我防到最低为零时,损伤会最小,最小值与敌血和敌攻都成正比,与我对敌的回合伤害成反比。"
cout << conclusion << endl;}

