[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Bastel  
Форум карты Жизнь на Арене » Помощь » Все для начинающих » Псевдо-случайное распределение вероятности
Псевдо-случайное распределение вероятности
abramsДата: Пятница, 18.02.2011, 05:47 | Сообщение # 1
¯\_(ツ)_/¯
Группа: Тестеры
Сообщений: 1670
Репутация: 21
Статус: Offline
Статья нагло скопирована с продоты и адаптирована под ЖнА.

Основы

Псевдо-случайное распределение (вероятности) (Pseudo Random (Probability) Distribution, PRD, ПСР(В)) относится к подсчетам вероятностей движком Warcraft III для некоторых способностей, основанных на шансе срабатывания, и влияющих на атаку. Вместо использования статичного процента, вероятность изначально установлена на небольшое начальное значение, затем повышающееся с каждой успешной атакой, на которой не сработал модификатор. Затем, когда модификатор успешно срабатывает, вероятность возвращается к начальному значению. Эта система не только предотвращает сверхчастые срабатывания модификатора, но и делает невозможным отсутствие модификатора вообще, т.к. со временем шанс достигает 100%, что ведет к срабатыванию модификатора на следующей успешной атаке. Следовательно, распределение модификатора атаки не полностью случайно, потому и называется псевдо-случайным распределением. В общем, все способности с шансом срабатывания округляются движком WC3 до ближайщих 5% из-за этой псевдо-случайности.

Псевдо-случайные способности

Список способностей, основванных на псевдо-случайном распределении. Ни одна из триггерных способностей, очевидно, не попадает в этот список.
• Критический удар (например, Вурдалак : Смертельный удар, Огненный Меч)
• Оглушающий удар (например, Нага - Гвардеец : Сильный удар, Призрачный Меч)
• Сокрушающий удар (например, старая способность Лучница : Сокрушение)
• Orb of Slow (например, Шедоу-Мастер : Искусство теней)
• Hardened Skin (например, Заколдованный щит)
Механика распределения

Пример на Критическом ударе

Предположим, что шанс Критического удара - 20%. Если бы игра была полностью случайна, то для каждой атаки была бы вероятность 20%, что эта атака будет Критической, и не важно, сколько критических ударов было выполнено до этого. Простейший метод такой работы - генерация случайного числа от 1 до 100, и, если оно меньше или равно 20, то делать атаку Критической (так устроены все триггерные способности с шансом срабатывания). Но при этом, если брать всю игру в целом, примерный шанс срабатывания будет 20%, но ничто не помешает как бесконечной серии критических ударов подряд, так и вообще отсутствию их на протяжении всей игры, хотя шанс довольно высок. Для предотвращения таких вероятностей и балансировки случайности игры, разработчики Warcraft III и ввели ПСР.

Вместо 20% шанса на Критический удар при каждой атаке, первая атака имеет шанс на Критический удар 5.57%. Если он не сработал, то вторая атака уже будет иметь шанс 11.14%. Если срабатывания не было, то третий удар будет иметь вероятность 16.71% и т.д., добавляя 5.57% за каждый последовательный удар, на который не выпал Критический удар. Когда Критический удар срабатывает, шанс его для следующей атаки падает обратно, до 5.57%. Если брать игру в целом, количество Критических ударов, деленное на общее число ударов, дадут нам примерно 20%, но теперь невероятно трудно иметь серию последовательных Критических ударов, а отсутствие Критического удара просто невозможно, т.к. после 17 успешных атак, на которые он не сработал, 18 будет иметь 100.26% шанс срабатывания.

Формула вероятности

Для всех вышеупомянутых способностей, движок Warcraft III использует изначальное процентное значение, линейно увеличивающееся с каждой успешной атакой, на которую не сработал модификатор. Формула вероятности срабатывания модификатора:
P(N) = C * N

Где:
P(N) - процентная вероятность срабатывания модификатора на N-ой атаке, N - количество атак с последнего успешно сработавшего модификатора (минимальное значение 1)
C - константа, обеспечивающая начальное значение %, и его увеличение с каждым ударом.

Т.к. формула линейна, когда N достигает достаточно высокого значения, P(N) превысит 1, что гарантирует срабатывание модификатора на следующую атаку. Простейшая математика покажет, что это значение N равно 1 / C. Значение C зависит от вероятности, настроенной для навыка в World Editor, в дальнейшем эта вероятность будет значиться как P(E), ожидаемая вероятность.

Константы ПСР
P(E) - ожидаемая вероятность, C - константа, максимальное число атак без срабатывания модификатора - Макс. N, P(A) - "настоящая" вероятность.

Так, Критический Удар с вероятностью 45%, может не сработать 4 атаки подряд, но пятая будет с ним.

Таблица представляет теоритическое значение C для всех, кратных 5, процентных вероятностей, полученных с помощью числовых методов.

Эта теоретическая вероятность не совпадает с оригинальной Blizzard, что особенно заметно при больших вероятостях. Значения настоящей вероятности (P(A)) получены экспериментальным путем.

Константы вероятностей

Согласно таблице, настоящие и теоретические значения C примерно одинаковы до 30%, но потом начинают резко расходиться. Другими словами, настоящая вероятность модификатора заметно ниже, чем ожидаемая вероятность.

Вероятностная погрешность

Очевидно, что общая вероятность модификатора должна быть максимально близка к P(E). Другими словами, после бесконечной серии атак, количество модификаторов, деленное на количество атак, должно быть точно равно P(E). Однако, ПСР приводит к другому значению, меньшему, чем P(E). Разница незаметна при низкой P(E), различаются на почти 1% при P(E) = 30%, и резко расходятся при больших вероятностях: ожидаемые 80% фактически являются 66.7%. Эта ошибка обусловлена двумя факторами:

1. Округление C. Без бесконечного числа знаков после запятой у C теоретически невозможно сделать линейную формулу для точной модели случайного распределения указанного P(E). Простые расчеты C требуют заметных временных затрат компьютерного времени, подразумевая, что тот должен составить целое вероятностное распределение для единственной константы. Поэтому все навыки, указанные выше, округляются до ближайщих 5%: вместо динамических подсчетов константы C, которые заняли бы очень много ресурсов CPU при каждой атаке, разработчики создали постоянную таблицу значений C для 5%, 10%, 15%, ...95%, которые потом подставлялись в формулу для определения P(N). Округление этих заданных значений и приводит к погрешности между P(N) и P(E). Этот эффект должен быть чрезвычайно мал для высоких значений C, однако, это не объясняет такой разницы в значениях при высоких P(E).

2. Значения P(E) из Развития (Ladder, ладдер). Blizzard затачивали Warcraft для игры на развитие, а не других видов карт, и наибольшая вероятность P(E) в ладдере - Сокрушающий удар Минотавров, с шансом 25%. Вряд ли является совпадением, что ошибка в P(E) начинает становиться заметной именно с этого места. Когда Blizzard ввели ПСР, они, возможно, подсчитали только те значения C, которые использовали в игре сами, а остальные значения были просто оценены на основаниях предыдущих результатов (например, с помощью экспоненциальной кривой). Видимо, они не стали проверять, как на самом деле сработают значения, что и привело к текущей ситуации.

Практическое использование

Счетчик атак

Счетчик атак N - целое число, относящееся к ПСР, но его механика описана не до конца. Большая часть описанных деталей является результатом наблюдений и здравого смысла, потому что никто не знает, как именно Blizzard реализовали ПСР.

Счетчик не увеличивается при атаке существа, к которому модификатор не может быть применен. Так, атака вражеских зданий не увеличит шанс выпадение Критического удара или Оглушающего удара при последующей атаке вражеских существ. Счетчик также не увеличивается, если герой промахивается из-за уклонения, разницы высот или отрицательных эффектов вроде Винных паров. Атаки, "отклоненные" триггерными лечениями, все равно являются атаками, и пополняют счетчик.

Способности, основанные на Orb of Slow, продложают накапливать счетчик, даже если способность перезаряжается. Это значит, что атаки, произведенные каким-либо героем во время перезарядки Orb of Slow, существенно повысят шанс выпадения после окончания перезарядки.

Каждый псевдо-случайный навык имеет свой счетчик, даже если несколько навыков одного типа находятся у одного героя. Если несколько навыков срабатывают в одно время, какой-то будет перекрыт другим, но счетчики обоих станут равны начальному значению. Например, если у героя два навыка Критического Удара. К сведению, Иллюзии имеют свой счетчик атак для псевдо-случайных навыков, наследованных от оригинала.
Применение

ПСР серьезно влияет на процесс игры, делая также возможным его использование в пользу игрока. Герой с Критическим ударом может сражаться против крипов, пока не произойдет длинной цепочки не-критических ударов, а затем идти в бой, с заметно увеличенным шансом на критический удар с первой атаки. Такая тактика, если не брать в расчет время на подготовку, может неплохо увеличить DPS героя в битве. Герои с родными навыки на Оглушающий удар так же могут сделать цепочку не-оглушающих ударов, чтобы максимализировать свой шанс на Оглушение в бою. Кроме того, шанс последовательных оглушений, благодаря ПСР, делает возможным пермо-оглушение, или обеспечивает просто хорошую частоту срабатываний. Поэтому, предметы на скорость атаки серьезно важны для таких героев.

Заключение

Псевдо-случайное распределение - встроенная особенность движка Warcraft III, защищающая множество способностей с шансом срабатывания от слишком частого или слишком редкого срабатывания. Благодаря этой системе, игрока гарантированно получат модификатор (например, Критический удар, блок урона, оглушающий удар и т.п.) после некоторого количества атак. Каждый раз, когда атака успешно завершается (против допустимой цели, притом попав в нее), и модификатор не срабатывает, шанс его срабатывания в будущем линейно увеличивается. При срабатывании модификатора, шанс падает до изначального, низкого, значения. В результате, модификаторы срабатывают не подряд, и с более размеренным интервалом. Из-за программных решений Blizzard, модификаторы, подчиняющиеся ПСР, с шансом срабатывания выше 30%, срабатывают реже, чем должны. ПСР не влияет на Уклонения или триггерные навыки, вроде Повелитель Холода : Заморозка, Темный Рыцарь : Удар тьмы.

Сообщение отредактировал abrams - Пятница, 18.02.2011, 05:50
 
[Nobody]Дата: Пятница, 18.02.2011, 06:35 | Сообщение # 2
.
Группа: Модераторы
Сообщений: 3535
Репутация: 15
Статус: Offline
суть здесь
Quote (abrams)
Статья нагло скопирована с продоты
 
abramsДата: Пятница, 18.02.2011, 06:46 | Сообщение # 3
¯\_(ツ)_/¯
Группа: Тестеры
Сообщений: 1670
Репутация: 21
Статус: Offline
Ага. Достали утверждать, что критикал и баш - это полный рандом.
 
LonerДата: Пятница, 18.02.2011, 07:40 | Сообщение # 4
I’ll be back
Группа: Админы
Сообщений: 4446
Репутация: 55
Статус: Offline
Прикрепил тему.
 
perimetralДата: Пятница, 18.02.2011, 16:16 | Сообщение # 5
Знаток Jass
Группа: Тестеры
Сообщений: 332
Репутация: 14
Статус: Offline
Оу, скажу честно, ранее не знал.


Таур
Оберокодаро
 
[Nobody]Дата: Пятница, 18.02.2011, 16:24 | Сообщение # 6
.
Группа: Модераторы
Сообщений: 3535
Репутация: 15
Статус: Offline
я говорил про это в какой-то теме,вроде про рандом
но функции,например, типа случайного числа,к этому не относятся
 
xo4yxa-Дата: Пятница, 18.02.2011, 17:13 | Сообщение # 7
}|{u3Hb 6e3 E6JIaHoB
Группа: Заблокированные
Сообщений: 567
Репутация: 15
Статус: Offline
abrams,
Quote (abrams)
использует изначальное процентное значение, линейно увеличивающееся с каждой успешной атакой, на которую не сработал модификатор

Я знал об этом, но по дугому. Проще представить, что если у тебя 20% шанс на крит, то это значит: из 5 атак одна точно будет с критом.


ПОСТЕПЕННО ПЕРЕХОЖУ НА НОВЫЙ АККАУНТ(С РАЗРЕШЕНИЯ Цезаря) begyn_po_jizni

Супермодераторов прошу не совершать преждевременных действий и со всеми вопросами обращаться
 
abramsДата: Пятница, 18.02.2011, 18:16 | Сообщение # 8
¯\_(ツ)_/¯
Группа: Тестеры
Сообщений: 1670
Репутация: 21
Статус: Offline
Quote (xo4yxa)
Я знал об этом, но по дугому. Проще представить, что если у тебя 20% шанс на крит, то это значит: из 5 атак одна точно будет с критом.

Начинается с 5% и увеличивается с каждым ударом. Если очень неудачлив, будешь держаться до сотого шанса.

 
Frozen_seekerДата: Пятница, 18.02.2011, 18:25 | Сообщение # 9
Мэв
Группа: Пользователи
Сообщений: 172
Репутация: 18
Статус: Offline
Интересная статья. Часто замечал что триггерные рандомайзеры от 1 до 100 не всегда срабатывают или срабатывают уж очень часто. Теперь надо будет юзать эту формулу.
 
BastelДата: Пятница, 18.02.2011, 20:02 | Сообщение # 10
Пит Лорд
Группа: Админы
Сообщений: 5725
Репутация: 60
Статус: Offline
хорошая тема.
 
abramsДата: Суббота, 19.02.2011, 06:16 | Сообщение # 11
¯\_(ツ)_/¯
Группа: Тестеры
Сообщений: 1670
Репутация: 21
Статус: Offline
Quote (Frozen_seeker)
Интересная статья. Часто замечал что триггерные рандомайзеры от 1 до 100 не всегда срабатывают или срабатывают уж очень часто. Теперь надо будет юзать эту формулу.

И как же ты будешь это делать?)

 
[Nobody]Дата: Суббота, 19.02.2011, 09:23 | Сообщение # 12
.
Группа: Модераторы
Сообщений: 3535
Репутация: 15
Статус: Offline
подошел,поебашил крипа,дождался долгой серии некритов,пошел бить героя
 
Frozen_seekerДата: Суббота, 19.02.2011, 09:53 | Сообщение # 13
Мэв
Группа: Пользователи
Сообщений: 172
Репутация: 18
Статус: Offline
Quote (abrams)
И как же ты будешь это делать?)

подумаю. На основе реальных и.т.д :(
 
Kotik-OloloДата: Воскресенье, 12.06.2011, 16:01 | Сообщение # 14
Светлячок
Группа: Пользователи
Сообщений: 13
Репутация: 0
Статус: Offline
Статью писали люди, ничего не смыслящие в теории вероятности.
Есть такой феномен "Ошибка игрока", который доказывает, что эта статья - антинаучный бред.
 
ARTEGLOДата: Воскресенье, 12.06.2011, 16:05 | Сообщение # 15
It's time to save our forum!
Группа: Проверенные
Сообщений: 1935
Статус: Offline
Kotik-Ololo, Толсто!

 
Форум карты Жизнь на Арене » Помощь » Все для начинающих » Псевдо-случайное распределение вероятности
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: