簡単なランチェスターの法則
カテゴリ:others
ランチェスターの法則を使うとストラテジーゲームで、戦闘を始める前に勝敗と残存人数とを概算できる。
ランチェスターの法則はいくつか前提条件がある。大雑把に言うと、チームメンバーの装備・体力などのステータスが全員同じで、敵全体に攻撃可能という前提だ。
例
戦闘力係数(fighting effectiveness coefficients)1・初期人数 150 のチーム X と、戦闘力係数4・初期人数 90 のチーム Y とが戦闘したとする。そのときどちらが勝ち、戦闘終了時の残存人数はいくらだろうか。これを式にすると以下のようになる。
変数分離形にした後、積分する。
どちらが勝ったのか
積分定数 C は X と Y とに初期人数を代入することで計算できる。この例では 9900 になる。積分定数が正のとき Y が勝ち、負の時は X が勝つ。
戦闘終了時の残存人数
戦闘終了時の残存人数は X(Xが勝つときはY)に 0 を代入して解く。この例では Y に約 49 人残る。
一般化
この式を一般化すると以下のようになる。By2 > Ax2 のとき Y が勝ち、By2 < Ax2 のとき X が勝つ。
HP と攻撃力がある場合
HP と攻撃力とで戦闘力係数を調整する。たとえば X の HP と攻撃力とをそれぞれ HPx・ATKx、Y は HPy・ATKyとすると、戦闘力係数を次のようにすればいい。
HP・攻撃力・防御力がある場合
攻撃力ー防御力を計算して0以下ならダメージ0とするか、攻撃力/防御力とする。
敵の HP*DEF を固さ(solidity)と定義すると、戦闘力係数は ATK/SOL になる。
戦闘時間はどのくらいか
ラプラス変換を使って方程式を解けば、戦闘にかかる時間も計算できる。
解を逆ラプラス変換すると以下の式になる。
x(t) = 0 とすると t を計算できる。
t = log(11)/4 = 0.559 になる。