Каждый, кто играл в такие игры, как "Казаки", "Геттисберг", или смотрел исторические фильмы наподобие "Патриота", представляет, как в основном выглядели пехотные сражения с конца XVII до середины XIX века. Подразделения противоборствующих сторон выстраивались в тонкие линии друг напротив друга и давали по противнику залп за залпом.
Управляя компьютерными армиями задумываешься, что скорее развивать: скорострельность или точность, какое численное превосходство нужно создать для прорыва. Попробуем ответить на эти вопросы, построив математическую модель перестрелки двух линий пехоты.
Итак, пусть вначале имеется a солдат Красных и b солдат Синих. Известно, что в среднем на 1 выстрел красных приходится p убитых солдат синих и на 1 выстрел синих приходится q убитых солдат красных. Примем, что залпы производятся с одинаковой частотой и одновременно, т.е. все солдаты, прежде чем быть убитыми, успевают выстрелить. В таком случае после первого залпа останется a-qb красных и b-pa синих, после второго: (1+pq)a-2qb красных и (1+pq)b-2pa синих, и т.д. (см таблицу).
Выведем общую формулу из следующих рекуррентных соотношений:
Тогда
.
Аналогично,
.
Попробуем теперь сначала уменьшить количество слагаемых в рекуррентных формулах, а затем выразить их из n.
Теперь для разностного уравнения
строим характеристическое уравнение:
и решаем его. Его корни
, значит, выражение имеет вид
. Подставив начальные условия для n=0 и n=1 имеем:
Аналогично:
Таким образом получаются формулы, показывающие, как убывает количество солдат в сражении по принципам линейной тактики, если принять, что залпы даются сторонами одновременно. Единственный член формулы, ведущий к уменьшению величин a или b до отрицательных значений – это коэффициент
, соответственно, при
победят красные, а при
- синие (разумеется, учитывая вероятностный характер попаданий). Именно этот результат, кстати, можно получить и намного быстрее, выяснив, при каком условии отношение количества солдат не изменится после первого залпа:
Для желающих поэкспериментировать прилагается также
калькулятор в таблице Excel. Здесь вы задаёте начальные количества солдат, их точность и относительную скорострельность. Программа вычисляет, как будет изменяться количество солдат в ходе боя и кто в конечном итоге выйдет победителем.