|    | 
СИ-БИ техника | КВ техника | УКВ техника | Радиоизмерения | Защита от TVI | Источники питания | Софт | Расчеты | Справочники
Главная arrow Проектирование arrow MathCAD arrow Трехсторонняя дуэль  

Трехсторонняя дуэль

Оглавление
Трехсторонняя дуэль
Страница 2
Страница 3
Страница 1 из 3

А теперь автор представляет на суд читателя еще одну свою любимую "статистическую" задачу — задачу о трехсторонней дуэли. Вот ее условия.

Сэм, Билл и Джон договорились сразиться на дуэли втроем по следующим правилам:

- жеребьевка определяет, кто стреляет первым, вторым и третьим;

- дуэлянты располагаются на одинаковых расстояниях друг от друга (по ' углам равностороннего треугольника);

- обмениваются выстрелами по очереди, определенной жребием, пока двое не будут убиты;

- очередной стреляющий может стрелять в любого из живых.

Известно, что Сэм — снайпер и никогда не промахивается с данной дистанции, Билл поражает мишень в 80% случаев, а Джон — в 50%. Какова наилучшая стратегия для каждого из участников и каковы вероятности их выживания, если они следуют оптимальным стратегиям?

В этой дуэли у Сэма и Билла могут быть две тактики поведения. Нулевая — это когда стреляющий ничего не знает о меткости соперников и целит в первого подвернувшегося. Первая — когда дуэлянту известно о том, кто как стреляет, и он метит в соперника с наивысшими стрелковыми качествами в надежде остаться tete-a- tete с наихудшим стрелком.

Джон может следовать и второй тактике. Чтобы получить наивысшие шансы выйти победителем из дуэли, он должен намеренно стрелять в воздух, пока двое его соперников живы. Ведь очередной стреляющий будет бить не в него, а в более меткого противника. После того как Сэм или Билл будет убит, Джон должен показать все, на что он способен. В такой ситуации его шансы выжить составляют 50%, если он остался наедине с Сэмом, и еще больше — если с Биллом.

Участник дуэли, прежде чем выстрелить, должен, во-первых, определить самого меткого соперника, в которого нужно стрелять, руководствуясь первой тактикой поведения. Для этого предназначена функция Самый_меткий (см. пункт 2 на рис. 4.21), возвращающая номер противника с наивысшими стрелковыми качествами. В ней перебором всех участников дуэли (цикл for) учитываются, естественно, только живые противники (Статус Цель="жив") и не сам стреляющий (Цель=Стрелок).

Участник дуэли, придерживающийся второй (хитрой) тактики, перед выстрелом в цель или перед намеренным промахом должен пересчитать противников, стреляющих лучше его. Эту работу выполняет функция Меткие. В нее заложен такой же алгоритм перебора противников, как и в функцию Са-мый_меткий. Функции самый_меткий и меткие в качестве аргументов имеют вектор меткость, вектор Статус и скаляр стрелок. Функции при своей работе вызывают логическую функцию And (логическое И — см. пункт 1) с аргументом-вектором, которая возвращает 0 (логическое отрицание), если хотя бы один из элементов вектора (аргумента) равен нулю.

Рис. 4.21. Трехсторонняя дуэль — функции пользователя

Функция победитель (пункт 3 на рис. 4.22) возвращает номер победителя в одиночной дуэли. При этом учитывается меткость и тактика каждого участника дуэли (два вектора-аргумента функции победитель).

Рис. 4.22. Трехсторонняя дуэль — моделирование одиночной дуэли и серии дуэлей


Пред. - След. »


RLBN.ru - Электроника и компьютеры

0.1581
Hosted by uCoz