Я всегда думал, что снижение на 50% эквивалентно снижению в 2 раза.
Т.е. мы имеем увеличение в 1,5 раза и снижение в 2 раза.
Так что изменение - будет.
Извиняюсь, я опечатался, и там не 1.5 и 1.5, а 1.5 в случае увеличения и 0.5 в случае уменьшения.
Смотрите, и в случае увеличения, и в случае уменьшения, вы в голове, попросту говоря, делать должны следующее: 10 помножить на 50 и поделить на 100, чтобы найти ту величину, на которую изменится исходная. Уже потом величину, которую дает модификатор, прибавляете к исходной или вычитаете. И в итоге вы получаете конечные величины 150 и 50.
Но вот после, с точки зрения как раз таки математики, у вас нарушение явное. Вы сравниваете, во сколько раз изменилась исходная величина путем деления полученных 150 от увеличения и делите на исходные 100, и получаете - в 1.5 раза.
Потом вы опять таки путем деления исходные 100 делите на полученные 50 и получаете 2 раза.
Не чувствуете разницы?
Вы поделили newValue / baseValue = 1.5 раза.
Вы поделили baseValue / newValue = 2 раза.
Т.е. элементарно вы поменяли местами аргументы.
И вот теперь мы делим 150 / 50 = 1.5 раза.
И вот теперь мы делим 50 / 100 = 0.5 раза.
Я спрячу это всё под спойлер, чтобы не раздувать и без того наши раздутые измышления)
Еще раз: на эту работу заложено какое-то время.
Неправда.
В условиях приведенной вами задачи об этом не сказано ни слова.
Наоборот, надо определить, сколько времени будет потрачено на работу.
Вот работа, на нее требуется 10 часов рабочего времени двух рабочих. Выдаем им инструмент, который повышает производительность на 50%. Давайте по шагам:
50% от 10 часов - это 5 часов. Т.е. время работы снизится до 10 - 5 = 5.
Заставляем их соблюдать ТБ, который понижает производительность на 50%.
50% от 10 часов - это 5 часов. Т.е. время работы повысится до 10 + 5 = 15.
Вы, очевидно, не понимаете связь между производительностью и временем, затраченным на работу.
Закон тут такой: Работа Р равна произведению производительности П на время Т, потраченное на работу:
Р = П * Т (это формула 1)
Пусть объем работ равен 1 ед. Время вы приняли равным 10 часам. Тогда базовая производительность составит
П0 = 1 ед / 10 час = 0,1 ед/час
Выдача инструмента повышает производительность на 50%, находим новую производительность П1:
П1 = 0,1 + 50% = 0,1 * 1,5 = 0,15 ед/час
Тогда по формуле 1 время работы с инструментом Т1 составит :
Т1 = Р / П1 = 1 / 0,15 = 6,67 часа
Соблюдение правил ТБ снижает производительность на 50%, находим новую производительность П2:
П2 = 0,1 - 50% = 0,1 * 50/100 = 0,1 * 1/2 = 0,1 * 0,5 = 0,05 ед/час
Тогда по формуле 1 время работы с соблюдением ТБ Т2 составит :
Т2 = Р / П2 = 1 / 0,05 = 20 часов
Теперь вычисляем значение времени работы от двух факторов/модификаторов (да хоть как назвать):
(15 + 5) / 2 = 10.
В данном случае, мы суммируем не сами модификаторы, а результаты, полученные от каждого из них, а потом находим среднее арифметическое.
Таков ход, потому что мы оперируем уже результатами того, каким будет время работы от первого модификатора и от второго, причем по отдельности.
Мне совершенно непонятно, почему вы упорно игнорируете производительность и оперируете только временем?
Ведь время, потраченное на работу, это функция от производительности.
Для того, чтобы рассчитать влияние сразу двух модификаторов на время, потраченное на работу, можно найти величину производительности труда под действием обоих факторов.
Как же это сделать правильно?
Давайте предположим, что факторы, влияющие на производительность, появились не одновременно, а с некоторым интервалом.
Итак, в первый день рабочим выдали инструмент, изменяющий производительность труда. Другими словами, это коэффициент, показывающий отношение новой производительности к старой, обозначим его как М1:
М1 = П1 / П0 (2)
Тогда из формулы (2) получается, что итоговая производительность П1 выражается формулой:
П1 = П0 * М1 (3)
На следующий день ввели в действие правила ТБ, которые тоже изменили производительность. Аналогично инструменту, она может быть записана как отношение новой производительности к старой.
М2 = П2 / П0
Но мы помним, что на второй день старая производительность, это та производительность, на которую уже повлиял инструмент, поэтому вместо П0 мы используем производительность с учетом влияния инструмента П1 и формула итоговой производительности Пи будет иметь такой вид:
Пи = П1 * М2 (4)
Теперь в формулу (4) мы подставим значение П1 из формулы (3):
Пи = П0 * М1 * М2 (5)
Таким образом получается, что производительность с учетом двух влияющих факторов равна произведению базовой производительности на коэффициенты всех влияющих факторов.
Что и требовалось доказать.
Вы спросите: “А что же время на работу?”
Ответ тут такой: как нам известно из формулы (1), время на работу есть отношение объема работ к производительности, таким образом из формул (2) и (5) итоговое время на работу Ти составит:
Ти = Р / Пи = Р / ( П0 * М1 * М2 ) = Р / ( П0 * ( П1 / П0 ) * ( П2 / П0 ) )
Давайте вычислим это значение:
Ти = 1 / ( 0,1 * ( 0,15 / 0,1 ) * ( 0,05 / 0,1 ) ) = 1 / ( 0,1 * 1,5 * 0,5 ) = 1 / 0,075 = 13,3 часа.
Ранее мы вычисляли, как изменится время, затраченное на выполнение работы, под действием каждого из модификаторов по отдельности и получили 6,67 часа для инструмента и 20 часов для ТБ. Давайте найдем их среднее арифметическое:
(20 + 6,67) / 2 = 13,3 часа
Т.е. вы правы, и влияние двух модификаторов производительности можно считать, как среднее арифметическое затраченого на работу времени при воздействии на производительность труда каждого из них по отдельности. Но при этом величина, которую непосредственно меняют модификаторы (производительность), находится как произведение базовой производительности на все модификаторы.
Таким образом, ваша главная ошибка в том, что вы неправильно решили, что изменение производительности труда на N% изменит время, затраченное на труд, тоже на N%.
Проценты, они коварные.
P.S. Ваш “второй подход” разберу позже
P.P.S. Если, конечно, в нем есть новые ошибки кроме тех, на которые я вам уже указал
Смотрите, вы делаете упор в то, что я отказываюсь принимать такую вещь, как производительность. Попытаюсь объяснить.
Вот ваше же формула Р = П * Т.
Вы сами прекрасно видите, что работа прямо пропорциональна и времени, и производительности.
Давайте представим, что рабочий имеет следующую производительность: он может перекидать 800 кг песка в час. И ему дали 10 часов времени. Какую работу он выполнит за это время?
Все просто же: Р = 800 кг/ч * 10 ч = 8000 кг. Согласны ведь?
Теперь этому рабочему выдали вместо штыковой лопаты подборную (додумались таки!) и он стал кидать 1200 кг / ч. Таковой стала его производительность. Давайте посчитаем, на сколько процентов выросла его производительность от исходной: 1200 - 800 = 400, 400 / 800 * 100 = 50%.
А во сколько раз выросла его производительность от исходной: 1200 / 800 = 1.5 раза.
Итак, производительность с подборной лопатой стала на 50% больше или в 1.5 раза больше.
Давайте посчитаем теперь, сколько он может перекидать песка за эти же 10 часов, т.е. найдем его работу:
Р = 1200 кг/ч * 10 ч = 12000 кг.
Давайте посчитаем, на сколько процентов выросла его работа по отношению к исходной:
12000 - 8000 = 4000, 4000 / 8000 * 100 = 50%.
И посчитаем, во сколько раз выросла его работа по отношению к исходной:
12000 / 8000 = 1.5 раза.
Что мы видим: во сколько раз повышается производительность, во столько раз повышается и объем работы, выполненной рабочим.
Но в данном примере константой у нас является время. Вы думаете, если будет определенный объем работ (константа) и две разных производительности, то что-то изменится? И разница по времени между 100% производительностью и 150% производительностью будет не в 1.5 раза?
А конкретно с нашими модификаторами дело обстоит еще проще, ибо там нет никаких третьих аргументов. Там их всего два, а именно: исходная величина и модификаторы.
Я имею в виду, что тут у нас ищется объем работы до применения модификатора и после него с учетом времени, а в игре только дальность работы (на примере этой темы, с которой то все и началось) до применения модификаторов и после применения оных без учета всяких там времяней.
UPD: Вы же понимаете, что время и производительность - это два разных аргумента, которые обуславливают полученную работу, а расстояние и модификаторы, увеличивающие или уменьшающие его, это аргументы одно и того же рода, т.е. по факту один аргумент, который получается путем сложения/вычитания всей подгруппы.