两军交战的胜负判定
我方有n名成员,用U_1、U_2、……、U_n表示。每名成员的生命值分别为H_1、H_2、……、H_n,战斗力用矩阵A来表示。敌方有$m$名成员,用$u_1$、$u_2$、……、$u_m$表示。生命值分别为$h_1$、$h_2$、……、$h_m$,战斗力用矩阵$B$来表示。
其中,$A=[(a_{11},a_{12},...,a_{1m}),(a_{21},a_{22},...,a_{2m}),(...,...,...,...),(a_{n1},a_{n2},...,a_{nm})]$。
$B=[(b_{11},b_{12},...,b_{1n}),(b_{21},b_{22},...,b_{2n}),(...,...,...,...),(b_{m1},b_{m2},...,b_{mn})]$。
矩阵$A$的第$i$行$j$列表示我方成员$U_i$对敌方成员$u_j$的攻击力是$a_{ij}$点每秒。
矩阵$B$的第$i$行$j$列表示敌方成员$u_i$对我方成员$U_j$的攻击力是$b_{ij}$点每秒。
攻击伤害是连续的。例如,$U_i$攻击$u_j$,持续$1/100$秒所造成的伤害为$a_{ij}/100$点,生命值用实数来计算。
攻击范围是没有限制的,每一名成员都可以攻击任何一名成员。
每一名成员在任何时刻都只能攻击一名成员,不能同时攻击多名成员,但可以随时改变攻击目标。
对于任何一名成员,生命值降为$0$即死亡,死亡后失去攻击力。
将对方所有成员打死即获得胜利,双方成员同时死光则打平。
双方都采用最佳策略作战。
给定$H_1$、$H_2$、……、$H_n$,$h_1$、$h_2$、……、$h_m$,$A$和$B$,均为正实数,判断我方是否必胜或必败。 对于n=1,没有什么可考虑的。
H1,h1,a11,b11
如果H1:b11=h1:a11打平
H1:b11>h1:a11我方胜
H1:b11<h1:a11我方负
------------------
对于n>1,比较复杂,
有三个优先攻击的地方:
1 对方的攻击力大,需要优先攻击
2 对方的生命值小,需要优先攻击
3 对方的防守差(即我方的攻击力大)
不能兼得,就需要权衡了。
攻击伤害是连续,其实没必要,只要把时间间隔设的足够小,就可看成是间断的,即每次攻击能减少对方多少生命值。
每一次大家都选定自己的对手,那么下一次所有人的生命值就是确定的,一直进行下去,来找到最优过程。 n比较大时,很复杂,可以先从n=2来研究。 时间连续或离散不是关键问题。通常来说,每次如果选择了攻击某人,应该大家齐心协力选择共同目标,干翻一个以后再选择下一个目标。但是问题是这种策略不是绝对的,有时还是会产生需要同时攻击多个目标的情况,所以问题非常复杂。 干翻一个
mathe这措辞,:lol 突然发现这个问题的参数可以简化:
对于每一个队员,将他的生命值和所受的伤害放大或缩小相同的倍数,结果不变。
所以可以假设$H_1=H_2=...=H_n=1$,$h_1=h_2=...=h_m=1$。
于是参数只剩下$A$和$B$。
我方必胜可以记为$A\succ B$,必败记为$A\prec B$。
不知道“$\succ$”是否具有传递性。
说不定存在$A$、$B$、$C$,使得$A\succ B$,$B\succ C$,$C\succ A$。 应该不具有传递性,而且构造估计不难,猜测3阶矩阵就能搞定 当$n=2$时,出现了特殊的结果:无法判定胜负。
假设双方各有$2$名成员,生命值均为$1$。
我方成员$1$攻击对方成员$1$,攻击力是$1$生命值每秒;
我方成员$1$攻击对方成员$2$,攻击力是$2$生命值每秒;
我方成员$2$攻击对方成员$1$,攻击力是$2$生命值每秒;
我方成员$2$攻击对方成员$2$,攻击力是$1$生命值每秒;
对方成员$1$攻击我方成员$1$,攻击力是$2$生命值每秒;
对方成员$1$攻击我方成员$2$,攻击力是$1$生命值每秒;
对方成员$2$攻击我方成员$1$,攻击力是$1$生命值每秒;
对方成员$2$攻击我方成员$2$,攻击力是$2$生命值每秒;
即$A=[(1,2),(2,1)]$,$B=[(2,1),(1,2)]$。
战斗的时候,我方有$4$招可选:
招数$1$:$2$名成员都先攻击对方成员$1$;
招数$2$:成员$1$先攻击对方成员$1$,成员$2$先攻击对方成员$2$;
招数$3$:成员$1$先攻击对方成员$2$,成员$2$先攻击对方成员$1$;
招数$4$:$2$名成员都先攻击对方成员$2$;
敌方也有$4$招可选:
招数$1$:$2$名成员都先攻击我方成员$1$;
招数$2$:成员$1$先攻击我方成员$1$,成员$2$先攻击我方成员$2$;
招数$3$:成员$1$先攻击我方成员$2$,成员$2$先攻击我方成员$1$;
招数$4$:$2$名成员都先攻击我方成员$2$;
假设整个战斗过程双方都不变招,那么战斗结果如下:
对方用第1招 对方用第2招 对方用第3招 对方用第4招
我方用第1招 对方胜 我方胜 我方胜 我方胜
我方用第2招 对方胜 对方胜 打平 对方胜
我方用第3招 对方胜 打平 我方胜 对方胜
我方用第4招 我方胜 我方胜 我方胜 对方胜
从上表可以看出,双方都没有必胜的招数。
这会导致整个战斗过程双方都在频繁地变招:
假设战斗开始时,我方出第1招,对方出第4招;
双方出招后,对方见形势不妙,立即变成第1招;
对方变招后,我方见形势不妙,立即变成第4招;
我方变招后,对方见形势不妙,立即变成第4招;
对方变招后,我方见形势不妙,立即变成第1招;
我方变招后,对方见形势不妙,立即变成第1招;
……
所以战斗结果无法判定。
为了判定这种特殊情况的战斗结果,我们引入概率。
于是对于$A=[(1,2),(2,1)]$,$B=[(2,1),(1,2)]$的情况,战斗结果是双方各有$50%$的概率获胜。
于是给定$A$和$B$,战斗结果有如下$4$种:
$1$、我方的胜利概率是$100%$;
$2$、我方的胜利概率是$0%$;
$3$、我方的胜利概率是$50%$
$4$、双方同时死光的概率是$100%$
我们将情况$1$记为$A\succ B$,情况$2$记为$A\prec B$,情况$3$和情况$4$均记为$A=B$。
于是对于$6#$的问题,结论是$\succ$不具有传递性。
如果要找不具有传递性的例子,估计$2$阶矩阵就能搞定。
我会设法构造出这样的矩阵的,大家静候佳音吧~
页:
[1]