Расчёт скорости снаряда

Доброго времени суток,

Я как-то давно писал про расчёт параметров и признаться до сих пор не понимаю по какому принципу игрок может применив одну формулуили пару формул получить то что имеет.

Но тут всё прозрачнее и как я считаю далеко от того что должно быть. Как видно стокавая скорость снаряда 3950-6600

. screenshot-170407-124909.jpg.42e9e9ed5bc8797209015cd8fd5b1041.jpg 

Теперь вставим Дефлектор “Сверхновая”, который в свою очередь режет скорость на 30% и полчаем -** 1185-1980,** что абсолютно верно:

screenshot-170407-125857.jpg.b94a02c3fed060a95330c1519e9de898.jpg

Теперь меняем имплант, который даёт по стечению обстоятельств те же 30% “WPN-FS2”  ( 6-3 ) и получаем следующие цифры +** 1185-1980 , что тоже абсолютно соответствует +30%**, и совпадает с предыдущими значениями (слот для патронов пуст)

screenshot-170407-130314.jpg.b0622f8e74201511856dabc010ef3667.jpg screenshot-170407-130920.jpg.7ef7d7d16f2a4e29169f82e38a8097e4.jpg

Следует предположить, что -30% на +30% должны дать 0, т.е. если я с этим имплантом буду использовать “Сверхновую”, то я получу стоковые  3950-6600 , ну или установка боеприпаса будет отнимать процент уже от имеющегося суммарного, смотрим что получается:

screenshot-170407-131849.jpg.96dc8ca75dbc4418bae7bf567fafaa7a.jpg

И так с имплантом мы имели 5135-8580 , если от этого отнять 30% , то выйдет  -3594.5-6006 , но по факту получаем 3500-5848 , ну или второй вариант, это получение стоковых параметров.

Как видно 2 применимых способа не дают очевидного результата. То же самое и с сингулярностью, остальное не проверял.

Если всё же это не баг, напишите пожалуйста формулы расчёта, которыми вы руководствуетесь для расчёта параметров, не только скорости, но и других.

Импланты работают  “отдельно” от остальной системы улучшений.

Из за этого получаются примерно следующие ситуации 1 * ( 1 - 0.3 ) *  ( 1 + 0.3 ) = 0.91

то есть вроде бы +0.3 и -0.3 но в результате не 1, а  0.91

 

 

32 минуты назад, Duche_killer сказал:

Импланты работают  “отдельно” от остальной системы улучшений.

Из за этого получаются примерно следующие ситуации 1 * ( 1 - 0.3 ) *  ( 1 + 0.3 ) = 0.91

то есть вроде бы +0.3 и -0.3 но в результате не 1, а  0.91

 

Постойте ка, я же привёл пример когда отдельно работает имплант и отдельно работает боеприпас и они работали идентично, но я так понял Вы имели в виду что суммирование имплантов с другими эффектами даёт не 1, а 0,91, по приведённой выше формуле (конкретный случай). 

Ну ок, тогда я должен получить стоковые 6600 * 0.91 =   6006 , или я что-то и сейчас не так понял?

59 минут назад, STORM50934 сказал:

И так с имплантом мы имели 5135-8580 , если от этого отнять 30% , то выйдет  -3594.5-6006 , но по факту получаем 3500-5848 , ну или второй вариант, это получение стоковых параметров.

 

Согласен, не все прозрачно,  видимо в процессе где то применяется еще какой то  модификатор, и в результате теряется еще немного скорости. А Возможно ошибка вообще только в отображении тултипа.

 

ну и формула все же такая там, если быть точнее:

1* ( 1/(1-(-0.429))) * (1+0.3)

но результирующая цифра опять не выходит    ![:)](<fileStore.core_Emoticons>/emoticons/001.png “:)”)

1 час назад, Duche_killer сказал:

0.429

Зачем же такие магические цифры, если 0.69979…практически то же что и 0.7 из первой “неточной” формулы ![:D](<fileStore.core_Emoticons>/emoticons/005j.png “:D”).

Ну и опять же ж, чем больше цифры, тем заметнее погрешность. Совсем нет желания заморачиваться если такие эффекты в других параметрах, но думаю что есть.

Ну и хотелось бы, чтобы всё прозрачно было, чтобы каждый мог без особых усилий рассчитать свои параметры перед тем как устанавливать или покупать модули и получал ожидаемый эффект. Ну и Вы, как человек, имеющий непосредственный доступ к исходникам (предположение), затрудняетесь ответить что влияет на разницу и баг ли это ![:):](<fileStore.core_Emoticons>/emoticons/).png “:):”).

Давайте я напомню матчасть

Фишка в том, что реальные модификаторы для “+30%” и для “-30%” - разные, поэтому их сумма не равна нулю. Поэтому установка двух модификаторов  “+30%” и для “-30%” в результате дает изменение параметра.

22 минуты назад, Skula1975 сказал:

Фишка в том, что реальные модификаторы для “+30%” и для “-30%” - разные, поэтому их сумма не равна нулю. Поэтому установка двух модификаторов  “+30%” и для “-30%” в результате дает изменение параметра.

Спасибо за ответ, но мы уже это выяснили, читайте выше. Мат часть я прочёл и явно там закралась ошибка, потому что из графика при -100% получаем 0, но при очень маленьком отрицательном значении - бесконечность.

post-11303-0-34661900-1377151323_thumb.jpg

Есть другой график от пользователя, откровенно говоря неясно откуда взяты значения, но по нему -43% тоже не вписываются в рамки полученного фактического результата.

post-1091108-0-13509700-1422080401_thumb.png

Давайте сделаем всё проще, есть базовая величина  6600 , имплант на +30%  и патроны на  -30%  нужно получить и обосновать цифру  5848. Безо всяких ссылок, подтекстов и прочего, в противном случае как Вы докажете что это не баг, по сути Вы мне сами говорите: “Иди считай - доказывай. Уже всё было описано”.

Если я дурак и не могу разобраться в простой формуле - научите меня, Ведь Lezort утверждает:

На данный момент, правила сложения модулей для всех, кроме модулей на сопротивление урону, едины.

 

У вас есть опыт использования графиков?

На первом, приведенном вами, четко видно, что увеличение параметра на 30% соответствует модификатору 0.3, а уменьшение параметра на 30% соответствует модификатору примерно -0.4, хотя лучше воспользоваться формулой newValue = baseValue / ( 1 - mod )

Отсюда mod = 1 - baseValue / newValue = 1 - 100 / 70 = -0.4285714285714286 ( вы ведь любите точность ? ![;)](<fileStore.core_Emoticons>/emoticons/002.png “;)”) )

Сложение модификаторов дает нам в итоге -0.13, т.е. в результате установки импланта на +30% и патронов на -30% получим снижение скорости снаряда по модификатору  -0.13.

Но так все равно не получается результат, что в игре.

6600 - 13% = 5742, а в игре 5848.

И самое интересное, как учили в начальных классах школы… Это что? - Уравнение с одним неизвестным. Считаем:

6600 = 5848 * х

х = 6600/5848 = 1,1285, то бишь, получаем те же 13%, что и пишет [@Skula1975](< base_url >/index.php?/profile/11303-skula1975/).

А на самом деле нам нужно: 6600 - 11,4% = 5847,6, что приближенно равно искоемому. Так куда пропали еще 1,6%?

1 час назад, Skula1975 сказал:

У вас есть опыт использования графиков?

Да, но и читать я тоже умею. Если уже оговорили о матчасти, то давайте ещё и оси нормально подпишем с величинами измерения. Я вот прочёл на 50% не -0.5, а -1.0 (см. график) и не вдаваясь в детали такие как чтение подписи осей (а другого пересечения я и сейчас не могу найти), нашёл описанное пересечение. Я вижу (не чётко, как Вы уверяете, но вижу) пересечение в зелёной точке , что примерно и можно сказать -40%. Ведь проценты в описании и на графики фигурируют в форме и как 50% и как 0,5. А newValue  представляется и как 1 и как 100.

post-11303-0-34661900-1377151323_thumb.jpg.7535fdea479d7f1879e20ee2c9783d7b.jpg

Таким образом, если вы видите, что тот или иной модуль что-то снижает на 50% , то при расчетах реальное значение модификатора будет не -0.5, а -1.0 (см. график).

Но вот хоть убейте, я не могу найти соответствующие описание соответствующему графику, кроме как в красной точке. Или это сужэдение от обратного: _“Если вы видете что характеристики модуля снижены на половину от базового, то суммарное значение отрицательного модификатора в процентах равно -100%”. _Но это не то что нужно пользователю, у него есть модификаторы и ему нужно расчитать что выйдет, а не установив всё, сверяться как же так получилось.

И опять же таки, почему нигде не сказано что дело идёт о суммарности моделей, что по отдельности они работают ровно так, как указано а процентах?

В 4/7/2017 в 17:55, Duche_killer сказал:

-0.429

Теперь мы подбираемся к правде и становится понятнее откуда бралось это магическое число, вот только тот же вопрос и у меня, числа то всё равно не сходятся:

44 минуты назад, _KOPM сказал:

Так куда пропали еще 1,6%?

 

О, я кажтся “въехал” откуда берутся ноги:

>>ЕСЛИ mod < 0 ТОГДА newValue = baseValue / ( 1 - mod )

Данная формула предлагает нам найти  newValue , и какзалось бы из формулировки “mod - сумма значений модулей, в соответствии с графиком ниже (Характеристики модуля 1 +…+Характеристики модуля 3 + бонусы от имплантов + Бонусы к характеристикам корабля ).” мы чётко знаем что это, к примеру,  -50% , но нет, нам его как раз и предстоит находить, потому что этот самый процент даёт инофрмацию о  newValue и оно равно 50. Т.е. как пользоваться графиком - смотреть на вертикальную линию, чтобы узнать mod.

И тут как у нас говоярят и скрывается сила имён, потому что по сути у нас есть модификатор, приведённый в описании модуля, который на самом деле используется для вычисления  newValue  и  mod , который не тот модификатор, что в описании, а на самом деле его и нужно вычислять в первую очередь (и он же, зная newValue смотрится по графику, наоборот никак посмотреть не получится, только на линейной части), чтобы потом это всё дело просуммировать и получить результирующую.

Браво за хорошо описанную матчасть.

И так подитожим:

  1. Модификатор патронов -30% не работает по заданой формуле, а работает как реальные -30% (должно быть -43%):

В 4/7/2017 в 14:06, STORM50934 сказал:

screenshot-170407-125857.jpg.b94a02c3fed060a95330c1519e9de898.jpg

  1. При соблюдении формулы, а она дала 13%, как в школе, делаем пропорцию

6600 - 100

5848 - х

х = (5848 * 100) / 6600 … = 88.6 , т…е. разница 100 - 88.6 = 11.4.

13 - 11.4 = 1.6

1 час назад, _KOPM сказал:

Так куда пропали еще 1,6%?

Вопрос по прежнему актуален.

16 часов назад, _KOPM сказал:

Но так все равно не получается результат, что в игре.

6600 - 13% = 5742, а в игре 5848.

И самое интересное, как учили в начальных классах школы… Это что? - Уравнение с одним неизвестным. Считаем:

6600 = 5848 * х

х = 6600/5848 = 1,1285, то бишь, получаем те же 13%, что и пишет [@Skula1975](< base_url >/index.php?/profile/11303-skula1975/).

А на самом деле нам нужно: 6600 - 11,4% = 5847,6, что приближенно равно искоемому. Так куда пропали еще 1,6%?

М-да… учите матчасть вдумчиво, ну пожалуйста…

На надо вычитать никакие проценты, не надо … Надо применять формулу:

newValue = baseValue / ( 1 - mod ) = 6600 / ( 1 - ( -0,13 ) ) = 5840 

Вуаля, ничего никуда не потерялось.

 

[@STORM50934](< base_url >/index.php?/profile/1081418-storm50934/)

График, который приведен в матчасти, это зависимость newValue от mod. Причем newValue выражен в абстрактных единицах (это не проценты, вообще-то), но его можно использовать как проценты тоже. 

И да, вы правы: сначала на оси newValue откладываем относительное изменение параметра и по нему находим примерное значение mod

P.S. Еще раз: все расчеты надо проводить исключительно по приведенным формулам. Любые пропорции, проценты неизбежно приведут вас к ошибке вследствие нелинейности зависимости изменения параметра от величины модификатора в отрицательной части графика.