Forum Webscript.Ru

Программирование => Теория, алгоритмы и стандарты => Тема начата: Error202 от 23 Августа 2007, 16:04:34

Название: Борьба флотов (вероятность)
Отправлено: Error202 от 23 Августа 2007, 16:04:34
Господа!
Я совсем не силен в матиматике и теории вероятности...
Подскажите, как сделать следующее:

Есть 2 флота...
Есть водные и подводные военные суда...

КНА - коэф. надводной атаки
КПА - коэф. подводной атаки
КНЖ - коэф. надводной жизни
КПЖ - коэф. подводной жизни
-------------------
1 флот
КНА - 750, КНЖ - 7500
КПА - 800, КПЖ - 2500

2 флот
КНА - 850, КНЖ - 8000
КПА - 500, КПЖ - 1500

Флоты бьют друг друга одновременно со своей мощность...

Как можно подсчитать наиболее вероятный исход боя, когда у одной стороны КНЖ и КПЖ будут равны 0 ?
Название: Борьба флотов (вероятность)
Отправлено: Altaxar от 23 Августа 2007, 17:54:14
Теория вероятности тут не причем :-),
а вот подумать будет ли исход боя зависит от случая или нет, можно.
Тоесть после боя 1 и такого же боя 2 разные итоги.
как почти во всех РПГ удар от 10-20. или как в Хероес можно просчитать точно.
Название: Борьба флотов (вероятность)
Отправлено: Altaxar от 23 Августа 2007, 18:00:15
если случайности нету то так:
1 ф. 1 кр.
7500-850 =6650
2500-500 =2000
2 ф. 1 кр
8000=750 =7250
1500-800= 700

1ф. 2кр.
6650-850=5800
2000-500=1500
2 ф 2 кр
7250-750=6500
700-800 = -100

итого 1ф
КНЖ=5800
КПЖ=1500
итого 2ф
Потонул из-за КПЖ
Название: Борьба флотов (вероятность)
Отправлено: Altaxar от 23 Августа 2007, 18:01:27
Еще есть 3) вариант
когда после круга ударов от % повреждение падает сила удара
Название: Борьба флотов (вероятность)
Отправлено: Error202 от 23 Августа 2007, 18:07:31
Ага... все просто и одновременно не так...

3-ий вариант мне нужен, при этом придется пересчитывать все коэффициенты каждый раз... :(
Название: Борьба флотов (вероятность)
Отправлено: Altaxar от 23 Августа 2007, 18:46:15
4 ) вариант самый сложный:
Расчитываем сколько каждый успел нанести урона до появление у когото 0 жизни флота. с расчетом на повреждение падает сила удара.

и наверное с расчетом что может бой быть 1 против 2.

Если у тебя не 2 флота а несколько, и еще по флагам, тоесть несколько команд, то будет весело.

Если нужен 4 вариант то сдесь нужно знание матрицы(система уравнения), алгебра 1 курс математического факультета.

P.S. Да помню был у меня такая пара, где учились составлять систему уравнения из подобных задач, не помню как она называлась.
Название: Борьба флотов (вероятность)
Отправлено: Error202 от 24 Августа 2007, 02:42:04
Спасибо!

Пока на 3-ем остановлюсь :)
Название: Борьба флотов (вероятность)
Отправлено: Egorsha от 14 Сентября 2007, 17:52:43
Если тема все еще актуальна, могу предложить следующее.

Для того чтобы ввести в это дело вероятность можно сделать различный т.н. "коэффициент атаки", очередность ударов и  вероятности нанесения удара зависящую  от того пропущен ли был предыдущий удар.

Для того чтобы удар был не всегда постоянный - ввсести т.н. моногмерный кубик - NdM+K .
Например, если максимальный удар 850, то для него считать удар где-то по такой формуле - 11d5+795. Что означает удар будет 800-850. 11d5 означает что подбросили 5 раз 11-гранный кубик, то есть сумма 5-ти случайных чисел от 1 до 11. (Возможны другие варианты).

Вероятность события можно считать следующим образом. Например, вероятность события равна N%, тогда надо получить случайное число от 0 до 100 и если полученное число меньше N, то событие произошло, если больше,то неудача.

При определении "попал-непопал" считать, что вероятность равна 50% у каждого корабля.

Для внесения большей непредсказуемости можно не одновременно списывать нанеаенный ущерб с каждого корабля а по очереди. Случайно определять кто первый ударил при каждом ходе. У первого будет явно преимущество и если первый попал во второго, то снижать вероятность нанесения удара вторым скажем до 45% (что-то типа не оправился от удара). На следующем ходе запоминать пропустил ли противник предыдущий удар. В случае если имелась вероятность 45% и противник предыдущим ударом промазал, то вероятность опять повышается до 50%.

Рассчетов больших проводить не нужно, а исход битвы станет более непредсказуемым.