Во-первых, был перепроверен можно сказать факт того, что в плане ратио "занятые/пустые слоты" пассивные, активные выключенные, активные включенные и активные пережигаемые модули считаются за "занятые слоты", а пустые слоты и оффнутые модули, соответственно, за "пустые слоты". Кроме того, на всякий случай были проверены клоки (которые, как известно, даже в оффлайне дают пенальти).
data
Единица измерения в данном случае - километры отлета от станции, т.к. использовался корабль с одной и той же скоростью, ретриба, без спидмодов.
T1 mwd + 5 t2 Adaptive Nano Platings (onlined):
280
180
208
216
T1 mwd + 5 t2 Adaptive Nano Platings (offlined):
910
1829
1247
T1 mwd + 2 t1 kinetic hardeners (onlined) + 2 t1 kinetic hardeners (overloaded) + t2 co-proc:
280
245
250
T1 mwd + 5 t1 prototype cloaks (offlined):
2200
900
635
Во-вторых, вчера появилась мысль, что сами риги-то не влияют на шанс получения урона модулем, а вот влияют ли сами слоты? Для проверки этого нужно взвести все известные факторы, от которых зависит шанс получения дамага самим модулем в 100% (а это отношение занятых слотов по отношению к свободным и температура рэка), и смотреть, будет ли наноситься урон во всех случаях или будут исключения, и если да, то как много.
В итоге был собран хукбилл, 5 т1 фотонок, хай 3 рокет лончера, лоу т2 сопроцы. риги пустые. Фотонки включались по-очереди с небольшим нахлестом (чтобы не дать теплу рассеяться), смежные с нахлестами циклы при подсчетах игнорировались. Сами результаты начинали записываться по достижению температуры мед рэка в 95%.
data
"0" - перегреваемый модуль не повреждался, "-" - повреждался
Заход 1:
0
0
-
-
-
-
0
0
-
-
0
-
0
0
-
-
-
0
0
-
-
0: 8, -: 12
Заход 2:
-
-
-
-
-
0
-
0
-
0
0
0
0
-
0
0
0
-
-
0
-
-
-
-
0: 10, -: 14
Заход 3:
-
-
-
-
-
-
-
0
-
-
-
-
-
0
-
0
-
-
0: 3, -: 15
Далее я на всякий случай зафитил на всю калибрацию и слоты ригов - 2 т2 экстендера и т1 миссл роф риг (на всякий случай), проверка вчерашнего опыта). Заход 4:
-
-
-
-
-
0
-
-
-
-
0
-
-
-
-
0
-
-
0
-
0
0
-
-
-
-
0: 6, -: 20
Заход 5:
-
-
-
-
0
0
0
-
-
-
-
0: 3, -: 8
Можно учесть среднюю температуру в районе 97 (в начале прогона она 95, в конце вообще точность возрастает и иногда температура рэка округляется до ста).
Полученные результаты (30 случаев не-нанесения дамага из 99 наблюдений всего) совсем не похожи на цифру 3%, так что вероятно присутствие какого-то другого фактора. Наиболее вероятный кандидат - именно до сих пор неправильно оцененный фактор забитые слоты/свободные слоты, а именно - тот факт, что установленные риги не становятся "забитыми слотами", но ригслоты учитываются в итоговом количестве слотов. То есть, у хукбилла было 10 забитых мед/лоу/хай слотов, и всего 13 слотов (с учетом ригов). Шанс не-нанесения дамага с учетом этой гипотезы:
1 - 10/13 (23%), и с учетом 3%-й поправки 1−10/13*0.97 (25%), что уже больше похоже на полученный результат с учетом возможного рандома (30%).
Для проверки был взят нубшип (у которых, как известно, ригслотов нет) Reaper (все нужные параметры идентичны хукбиллу), в него запиханы т2 лампа, т2 капреч, 2 т2 280мм арти. С 2 пукалками температуру рэка быстро не наберешь, поэтому замеры начинались с 90%, при необходимости перезарядки пушки чередовались (чтобы температура не падала).
data
Заход 1:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
0
-
-
-
-
-
-
-
0: 1, -: 26
Заход 2:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
0: 0, -: 20
1 из 47, где-то 2%. Я посчитал это убедительным доказательством и не стал продолжать.
Сейчас гоняю т3 (сабсистем-слоты) на эту же тему, первую пачку тестов (влияют ли установленные сабы на скорость сгорания слотов) уже почти прошел, и что-то мне кажется, что там такая же ситуация.
edit: если кто не понял, что оно значит: при высчете шанса нанесения урона модулю при перегреве есть 2 фактора, температура рэка и соотношение количества занятых слотов к полному количеству слотов. Полное количество слотов включает в себя все хай, мед и лоу слоты, плюс риги, плюс, возможно, сабсистем-слоты. Занятые слоты включают в себя онлайн+ (то есть состояния online, active, overload) модули из хай/мед/лоу, но НЕ включают в себя оффлайнутые модули, пустые слоты, любые риги, и, возможно, субсистемы.
Кроме того, в процессе была замечена такая штука, а точнее, следствие нанесения урона перегревом в конце цикла: если перегреваемый модуль в процессе цикла был убит соседним перегреваемым модулем, то он тут же оффлайнится, любое его воздействие на корабль прекращается, урон убитым модулем соседним модулям не наносится ни при оффлайне, ни когда должен бы был закончиться цикл убитого.
Боюсь что не получится вывести формулу для матожидания и дисперсии без моделирования. Слишком много переменных.
Я еще над этим даже не думал, если честно. Как буду детально представлять, как работает пережог - можно будет думать о моделировании или приближенных вычислениях.
add: итак, т3 и субсистемы.
Во-первых, выясняем, влияют ли установленные сабы на скорость сжигания модулей. Берется тенга в конфиге CPU, CapReg, Amplif, Covert, Null (сумма слотов 15 + 3) и цинабал (сумма слотов 15 + 3). Смотрим, сколько циклом отгоняет мвд до того, как повредится 5 раз (для цинабала это мертвое мвд, для тенги 1 шаг до метрового с теми скиллами, с которыми гонял я).
data
Cyna + MWD:
64
49
76
110
101
Среднее: 80
Tengu + MWD:
146
59
67
64
131
Среднее: 93.4
Cyna + MWD + 5 t1 small nosferatus:
17
11
17
Среднее: 15
Tengu + MWD + 5 t1 small nosferatus:
15
12
12
Среднее: 13
Как видно по тестам, сабсистемы не считаются за онлайн+ модули (иначе бы тенга гоняла меньшее число циклов, примерно в 5 раз, т.к. у цинабала ратио было бы 1/18, а у тенги 6/23).
Кроме того, у тенги небольшое преимущество. Объясняется оно либо погрешностью (заходов всего 5 на брата), либо тем, что сабсистемы тенги считаются также, как риги (и у тенги ратио 1/23 выходит). Проверяется это тем почти тем же образом, что и проверялись риги, с упором на статистику (потому что нету кораблей с субсистемами, но без ригов, чтобы исключить случайный фактор ригов). Берем тенгу (Dissolution, Coolant, Amplif, Ejection Bay, Fuel Cat), фитим доверху (5 т2 носф, 6 т2 инвулей, 5 т2 капрелеев, 2 т2 ццц, 1 т1 ццц), гоним температуру меда до 95%, собираем данные. Большую часть эксперимента (т.к. он доолгий, тенга слабо дамажит инвули и их много) температура рэка в районе сотки, так что ее просто игнорируем.
data
Заход 1:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
0
-
-
-
-
0
-
-
-
-
-
0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
0
0
-
-
-
0
-
0: 6, -: 41
Заход 2:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
0
-
-
-
-
-
-
-
-
-
0
-
-
0
0
0
0
-
0
-
-
-
-
-
-
-
-
-
-
-
-
0
-
-
-
-
-
0
0
-
-
-
-
-
-
-
0: 10, -: 50
Заход 3:
-
-
-
-
-
-
-
-
-
0
0
-
-
-
-
-
-
-
-
-
0
-
-
0
-
-
-
-
0
-
-
-
-
0
-
-
-
-
-
-
-
0
0
-
-
-
-
-
-
-
-
-
0: 8, -: 44
Итого 24 не-нанесения против 159 наблюдений, или 15%. Очень непохоже на 1 - (16 (занятые слоты) / (16 + 3 + 5)), то есть 33%, не так ли? Раз уж так люто не подходит и сами субсистемы не учитываются как онлайн+ модули, может быть оно вообще игнорируется? 1 - (16 / (16+3)), 15.79%. Да, так оно и есть.
Подводя итог всего поста, один из мультипликаторов, влияющих на вероятность нанесения дамага самому модулю, равен (хай + мед + лоу, занятые онлайнутыми модулями) / (кол-во хай + мед + лоу + риг слотов).
moar: Теперь выясняем законы нагрева/рассеивания. По своему характеру они очень похожи на экспоненциальные. Сначала поработаем с нагревом, посмотрев зависимость от количества участвующих в процессе модулей. Тенга (Dissolution, Coolant, Amplif, Ejection Bay, Fuel Cat), 6 одинаковых фотонок (т2), смотрим, сколько времени пройдет до 99% нагрева (по интерфейсу, т.е. с округлением).
data
1: 279.793050051
2: 140.444602966 (1.99 ратио)
3: 93.8117558956 (2.98 ратио)
4: 69.827504158 (4 ратио)
5: 55.2678010464 (5.06 ратио)
6: 46.3448960781 (6.03 ратио)
Все в пределах погрешности. То есть, зависимость от количества модулей или некоего их атрибута линейная. А также видно то, что никаких сюрпризов в виде рандома нету. Переходим к размышлениям, какой же параметр модуля регулирует, сколько тепла будет выделяться. Кандидат тут один, у каждого пережигаемого модуля есть атрибут heatAbsorbtionRateModifier. Проверяем во-первых разные модули с одинаковой длительностью цикла, но разными этими атрибутами, а потом добавляем и разницу в циклах. Греем до 90%. Тенга (Dissolution, Coolant, Amplif, Ejection Bay, Fuel Cat).
data
т1 10 мн мвд (0.04, цикл 10 сек): 75.4861559868
т2 инвуля (0.02, цикл 10 сек): 150.156818867
т1 инвуля (0.01, цикл 10 сек): 301.53029108
т2 мшб + 2 6% импа на капу (0.02, цикл 3 сек в оригинале, 2.55 в пережоге): 150.825686932
Окей, по характеру выделения тепла (по индикатору) и по этим данным видно, что оно не зависит от цикла модуля, а только от этого самого атрибута и времени. У кораблей, помимо прочего, есть такой атрибут - heatGenerationMultiplier. Влияет ли он на все это дело? Берем т1 инвулю, примеряем на разные кораблики.
data
Тенга из теста выше, т1 инвуля (атрибут этот равен 0.75): 301.53029108
Мерлин (1.0): 226.738855124
Как видно из названия и результатов, это просто множитель. Теперь смотрим, какие еще относящиеся к генерации тепла могут быть параметры у модулей и корабля? Да никаких, за исключением heatCapacityHi/Med/Low, которые у всех без исключения кораблей равняются сотке. Вывести формулу несложно, кроме того, она уже тут не раз упомянута (на гунвики цитата ццпшника, и более точная, с учетом кучи параметров, любезно предоставленная mr_depth'ом), так что я не буду морочить вам голову с ее выводом:
H(t)=heatCapacity/100-e
-t*heatGenerationMultiplier*sum(heatAbsorbtionRateModifier)
data
Пример с мерлином и т1 инвулей: 100÷100−e^(−226.738855124×1.0×0.01) = 0.8964 (грели до 90, чек)
Пример с тенгой и т2 инвулей: 100÷100−e^(−150.156818867×0.75×0.02) = 0.8948 (грели до 90, чек)
С тенгой и мвд: 100÷100−e^(−75.4861559868×0.75×0.04) = 0.8961
С тенгой и 6 фотонками: 100÷100−e^(−46.3448960781×0.75×0.02×6) = 0.9845 (грели до 99, чек, почему - объяснено ниже).
Небольшой недобор объясняется не кривостью формулы, а небольшой погрешностью + округлением данных в еве (98.5 для нее уже 99). Итого - формула для набора температуры верна. Время формулы рассеивания тепла. Она уже, как и формула набора, есть:
H(t) = H(0)*e
-t*heatDissipationRateHiДелаем несколько замеров, как быстро падает температура рэка с 90 до 20, и тут же проверяем это формулой. Тут наверняка используются атрибуты корабля heatDissipationRate[Hi | Med | Low], но они у всех известных кораблей равны 0.01.
data
Мерлин: 150.6175639629364; 0.9×e^(−150.6175639629364×0.01) = 0.1996 чек
Тенга: 150.68784713745117; 0.9×e^(−150.68784713745117×0.01) = 0.1994 чек
Дальше проверять не вижу смысла, т.к. формула простая и нету атрибутов, могущих влиять на скорость рассеивания. Размер корабля и heatGenerationMultiplier не влияют на это дело.
Остается проверить зависимость повреждения модулей от температуры (просто, но времязатратно), проверить зависимость шанса повреждения модулей от дальности от перегреваемого модуля (средне-сложно и очень времязатратно), после чего остается только свести все эти факторы воедино и проверить на общих примерах. Но как в целом работает пережог уже ясно, самой мозгодробительной частью были риги и сабсистемы
Если модуль оффлайн, он считается как пустой слот, однако продолжает получает урон, пусть и с меньшей вероятностью.
Интересное заявление. Ты это сам проверял или откуда-то выцепил? За счет чего понижается вероятность, за счет того, что это +1 оффлайнутый модуль или за счет какого-то нового фактора? И, да, у меня дежа-вю - мне кажется, что я эту фразу уже где-то видел и этот вопрос тоже задавал.
Сообщение отредактировал DarkPhoenix: 10 November 2011 - 4:05