Показать сообщение отдельно
  #15  
Старый 20.05.2006, 05:53
DemonHunter не в сети
Магистр
 
Регистрация: 16.09.2005
Сообщения: 1,664
Репутация: 21
DemonHunter На правильном пути
По умолчанию

Формула среднего урона.

Красными числами на схеме обозначены номера событий.
Обозначения: р(1) - вероятность события №1, р(уворот2) - вероятность того, что игрок №2 увернется (ловкость2/ловкость1+уворот2-точность1), [a]=If[a>0,a,0].
Основная формула использованная при вычислениях - формула полной вероятности.

p(2)=p(уворот2)
p(3)=р(ответудар2)*p(2)
p(4)=(1-p(ответудар2))*p(2)
p(5)=1-p(уворот2)
p(6)=p(блок2)*p(5)
p(7)=p(пробойблока1)*p(6)
p(8)=(1-p(пробойблока1))*p(6)
p(9)=p(крит1)*p(7)
p(10)=p(пробойброни1)*р(9)
p(11)=(1-p(пробойброни1))*р(9)
p(12)=(1-р(крит1))*р(7)
p(13)=p(пробойброни1)*р(12)
p(14)=(1-p(пробойброни1))*р(12)
p(15)=(1-р(блок1))*р(5)
p(16)=р(парирование2)*р(15)
p(17)=(1-р(парирование2))*р(15)
p(18)=p(пробойблока1)*p(16)
p(19)=р(шок1)*p(16)
p(20)=p(пробойброни1)*р(19)
p(21)=(1-p(пробойброни1))*р(19)
p(22)=(1-р(шок1))*р(18)
p(23)=p(пробойброни1)*р(22)
p(24)=p(1-пробойброни1)*р(22)
p(25)=(1-p(пробойблока1))*p(16)
p(26)=р(шок1)*p(17)
p(27)=(1-р(шок1))*p(17)
p(28)=p(пробойброни1)*р(26)
p(29)=(1-p(пробойброни1))*р(26)
p(30)=p(пробойброни1)*р(27)
p(31)=(1-p(пробойброни1))*р(27)

Средний урон (математическое ожидание урона) можно посчитать примерно так:

Среднийурон1=p(10)*((максурон1-минурон1)/2)+р(11)([(максурон1-минурон1)/2-броня2])+
p(13)*((максурон1-минурон1)/2)/2+р(14)*([(максурон1-минурон1)/4-броня2])+р(20)*((максурон1-минурон1)/2)+
р(21)*([(максурон1-минурон1)/2-броня2])+p(23)*((максурон1-минурон1)/2)/2+р(24)([(максурон1-минурон1)/4-броня2])+
p(28)*(([максурон1-минурон1])/2)*2+р(29)([(максурон1-минурон1)-броня2])+p(30)*((максурон1-минурон1)/2)+
р(31)([(максурон1-минурон1)/2-броня22])

Для полноты картины надо еще умножить максурон и минурон на бонусы от силы и мастерства, а также посчитать средний урон при второй, третей, четвертой атаках, а также при ответном ударе на вторую, третью и четвертую атаку. Упрощенно это можно сделать так:
среднийуронвторойатаки1 = p(второйатаки1)*Среднийурон1. Здесь не учтена низкая вероятность игрока №2 поставить блок при второй атаке игрока 1.
среднийуронтретейатаки1=р(второйатаки1)*р(третейат аки1)*Среднийурон1 и.т.д.

В формуле возможны глюки, но идея, я надеюсь, ясна.
Изображения
 

Последний раз редактировалось DemonHunter, 20.05.2006 в 06:00.
Ответить с цитированием