找回密码
 欢迎注册
查看: 20357|回复: 8

[原创] 两军交战的胜负判定

[复制链接]
发表于 2012-1-29 01:09:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
我方有$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$,均为正实数,判断我方是否必胜或必败。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-29 12:44:20 | 显示全部楼层
对于n=1,没有什么可考虑的。
H1,h1,a11,b11
如果H1:b11=h1:a11  打平
    H1:b11>h1:a11  我方胜
    H1:b11<h1:a11  我方负
------------------
对于n>1,比较复杂,
有三个优先攻击的地方:
  1 对方的攻击力大,需要优先攻击
  2 对方的生命值小,需要优先攻击
  3 对方的防守差(即我方的攻击力大)
不能兼得,就需要权衡了。
攻击伤害是连续,其实没必要,只要把时间间隔设的足够小,就可看成是间断的,即每次攻击能减少对方多少生命值。
每一次大家都选定自己的对手,那么下一次所有人的生命值就是确定的,一直进行下去,来找到最优过程。

评分

参与人数 1贡献 +1 收起 理由
KeyTo9_Fans + 1 我很赞同

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-29 12:46:49 | 显示全部楼层
n比较大时,很复杂,可以先从n=2来研究。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-30 09:07:32 | 显示全部楼层
时间连续或离散不是关键问题。通常来说,每次如果选择了攻击某人,应该大家齐心协力选择共同目标,干翻一个以后再选择下一个目标。但是问题是这种策略不是绝对的,有时还是会产生需要同时攻击多个目标的情况,所以问题非常复杂。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-30 09:56:17 | 显示全部楼层
干翻一个
mathe这措辞,
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-1-30 19:22:22 | 显示全部楼层
突然发现这个问题的参数可以简化:

对于每一个队员,将他的生命值和所受的伤害放大或缩小相同的倍数,结果不变。

所以可以假设$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$。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-1-30 22:13:14 | 显示全部楼层
应该不具有传递性,而且构造估计不难,猜测3阶矩阵就能搞定
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2013-11-16 19:48:51 | 显示全部楼层
当$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威望 +4 金币 +4 贡献 +4 经验 +4 鲜花 +4 收起 理由
wayne + 4 + 4 + 4 + 4 + 4 不明觉厉

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-22 21:11 , Processed in 0.024540 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表