血攻防對戰(zhàn)
/*論述借用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]
/*無論攻防為定義域內(nèi)何值,都與敵等傷,故殺敵受傷消耗的血量就是敵人的總血量*/
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=
"結(jié)論:在攻防和固定的情況下,攻防分配與敵我攻防和對比有關(guān)。若我方攻防和高于敵方,升我防到與敵攻相等則無損;若我方攻防和等于敵方,無論攻防為定義域內(nèi)何值,都與敵等傷,故殺敵受傷消耗的血量就是敵人的總血量;若我方攻防和小于敵方,升我攻到最大等于攻防和,降我防到最低為零時,損傷會最小,最小值與敵血和敵攻都成正比,與我對敵的回合傷害成反比。"
cout << conclusion << endl;}