Форумы-->Идеи и предложения-->
| Автор | Изминить формулу срабатывания удачи и морали |
первоначальный разброс от 0 до 1 (обозначим B)
ход монстра генерируем число в диапазоне от 0 до 1 (обозначим A)
Если А<B (удача не сработала) тогда увеличиваем A на удача юнита*0,1
иначе срабатывает удача и а меняется как A=A-1+удача юнита*0,1 | -1
мне такая нравиться, привыкли, ща прощитывать очень легко, особенно 5 БД, срабаывает через ход | -1
Так в самый раз... | | преимущества - нормальное срабатывание морали минотавров и существ без страха, отсутствие постоянства срабатывания при морали 5 | -4
Чем это тебе не нравиться мои +5БД, хорошо когда срабатывает через каждый ход...хотя рыцарей это не спасёт (это я так...от темы отступил) | По сути - два предложения
1)Сделать счётчик удачи и морали отдельным для каждого существа отдельным
2)Убрать случайность из счётчика, то есть сделать для каждого отряда срабатывание удачи и морали периодичным
Первое предложение уже где-то было, но ему +1
Второе предложение мне совсем не нравится: удача без случайности... | | Я своё мнение уже высказывала в аналогичном теме Тайпана , а именно - мораль и удача должны срабатывать отдельно у каждого стека , тогда ловить их на основные станет невозможно . | | насколько я понимаю, через несколько испытаний (ходов юнита) появится предсказуемая цикличность - что не есть хорошо. Например, при удаче, равной 2, после первых двух срабатываний удач будет цикл в 5 ходов. (если нигде не ошибся) Так что я против :) | В начале
A:=random(10)/10
Пусть удача или мораль m
Если существо ходит, то
if A>0 then
B:=random(10)/10;
if A>B then A:=A-1+0,1*n, (срабатывает мораль)
{причём A может оказаться меньше 0}
else A:=A+0,1*n
{Причём A может оказаться больше 1} (тогда на следующий ход удача
сработает принудительно)
else
B:=random(10)/10;
if -A>B then A:=A+1+0,1*n, (срабатывает НЕ мораль)
{причём A может оказаться меньше 0}
else A:=A+0,1*n
{Причём A может оказаться больше 1} (тогда на следующий ход удача
сработает принудительно)
endif | 9
А по-русски?
P.S. -1 | 9
в общем я так понял:
1) есть признак (мораль, удача, неудача, страх) который работает независимо на каждом юните. Это по сути мое давнишнее предложение
2) у признака есть параметр(вероятность срабатывания) m
Исходя из этого m предлагается следующая схема:
A:=random(10)/10 %initial value
% перед каждым ходом юнита
B:=random(10)/10;
if A>B then A:=A-1+0,1*m, (срабатывает признак)
else A:=A+0,1*m
в принципе, надо оценить как это будет вести себя статистически, но на первый взгляд смотрится нормально. Сгенерю большую какую-нибудь выборку - проверю :) | +11
проверил на выборке 100000 испытаний: статистически алгоритм хорошо работает, в среднем действуют те же ограничения, что и сейчас, но получается более случайно: возможны редкие небольшие выбросы, которые можно интерпретировать как невезение/везение :) Если есть конкретные вопросы по результатам теста - спрашивайте.
Так что от меня: +1 | Кстати, вероятность срабатывания признака +1 (удача +1/мораль +1) сейчас с учетом нынешних ограничений занижена.
Вот статистическая вероятность, подсчитанная на выборке 1000000 испытаний, в разных схемах:
1. Полный рандом - 0.1001
2. Нынешняя схема(с простыми ограничениями 5 и 20) - 0.0822
3. Схема ERWINS - 0.1 | +13
дополнительные статистики (подсчитанные на той же выборке):
1) среднее кол-во ходов между выпадениями признака
1. Полный рандом - 8.9969
2. Нынешняя схема - 11.181
3. Схема ERWINS - 9
2) стандартное отклонение кол-ва ходов между выпадениями признака
1. Полный рандом - 9.4586
2. Нынешняя схема - 5.3944
3. Схема ERWINS - 2.4736
3) min и max кол-во ходов между выпадениями признака
1. Полный рандом - 0 и 106
2. Нынешняя схема - 4 и 19
3. Схема ERWINS - 0 и 18
4) квантили ( 5%,25%,50%,75%,95%) распределения кол-ва ходов между выпадениеми признака
1. Полный рандом - [0 2 6 13 28]
2. Нынешняя схема - [4 6 10 17 19]
3. Схема ERWINS - [5 7 9 11 13]
Резюме: Схема ERWINS фактически "усредняет" рандом(уменьшает отклонение вокруг среднего без существенного изменения этого среднего) - что в принципе все и хотели - чтобы удача выпадала не слишком часто и не слишком редко, но в среднем так же, как и при полном рандоме. :) | кросавчег Тайпан.
обожаю ТЕР ВЕР :) | для Maximum_Damange:
:) | Кстати, я тут поигрался с различными вариантами ограничения для +1 - можно, в принципе, не менять нынешнюю схему, а просто подобрать более подходящие ограничения. Сейчас (5,20) чересчур жесткие и дают заниженную вероятность срабатывания признака. Если взять ограничение (3,17), то статистическая вероятность уже будет очень близка к 0.1 Теоретически обосновать я это пока не могу (надо подумать), это чисто практические наблюдения.
Статистика для ограничений (3,17) в том же порядке, что и в 14-ом сообщении:
стат. вероятность - 0.100653
1) 8.9348
2) 5.1093
3) 2 и 16
4) [2 4 8 15 16]
P.S. В общем, не понятно из каких соображений были выбраны нынешние ограничения - статистически они работают неудовлетворительно. | продолжение исследования :)
для случая удача/мораль +2 очень хорошо работают следующие ограничения:
"не более 2 раз за 3 хода и не менее 1 раза за 15 ходов", которые также не позволяют слишком частое и редкое выпадение признака.
сравнение с рандомом без ограничений на выборке 1000000 испытаний:
стат. вероятность:
1. Полный рандом - 0.2
2. рандом с такими ограничениями - 0.2007
остальные статистики в том же порядке что и раньше:
1)
1. Полный рандом - 4
2. рандом с такими ограничениями - 3.9823
2)
1. Полный рандом - 4.456
2. рандом с такими ограничениями - 3.8481
3)
1. Полный рандом - 0 и 50
2. рандом с такими ограничениями - 0 и 14
4) здесь вообще полное совпадение квантилей:
1. Полный рандом - [0 1 3 6 13]
2. рандом с такими ограничениями - [0 1 3 6 13]
Какие сейчас действуют ограничения - я не знаю, но не уверен, что они адекватно сохраняют средние характеристики и "не сильно сдвигают" значение вероятности. |
К списку тем
|