Данная задача не о модификаторах, а о том, что вы попросили продемонстрировать правило: а именно, почему факторы, влияющие на исходную величину нужно слагать меж собой, а не перемножать. Именно для этого я ее и показал.
А вам не кажется, что факторы, влияющие на исходную величину это и есть модификаторы?
Кажется, но именно суть задачи не в этом.
Впрочем, модификаторы тут есть.
Как же они есть, если задача не о модификаторах?
Да боги, неужели нужно объяснять, что это одна мысль? Вам обязательно нужно примеры приводить, когда человек рассуждает, что лучше этот довод не приводить, а потом приводит с мыслью “была не была”. Вот и я так сделал. И как видно, зря, потому что вы сразу же зацепились за это, что по факту не является предметом спора. Являются ли рабочие модификаторами или нет.
Впрочем, модификаторы тут есть. А именно: два рабочих. А исходная величина - это работа, которая требует какого-то времени. И вот первый рабочий уменьшает эту величину на 50%, к примеру, потому что у него руки “золотые”, а второй - увеличивает на 50%, потому что руки у него из задницы.
М-да, как все запущено.
Ответьте мне на вопрос: как может первый рабочий уменьшить время, необходимое для выполнения работы, если он первый, т.е. до него никто не работал?
Еще раз: на эту работу заложено какое-то время. Вот работа: сделать скрутку из трех концов требует десяти минут. Но если я - профи скруток, у меня набита руки, я полжизни эти скрутки делаю, то потрачу на нее 5 минут, потому что я все скрутки делаю на 50% быстрей, и, следовательно, я уменьшу время работы. А вы, допустим, только изучили в теории, как скрутки то делать. И вы потратите на это 15 минут, потому что пальчик порезали, изолента какая-то тянучая, гильза не обжимается, пассатижи уронили. Т.е. вы будете делать работу на 50% дольше, потому что опыта нет.
Если вам не видна аналогия с модификаторами…
Конечно не видна - потому что ее нет
Она есть. Объем работы единице равен, но время нам неизвестно, однако, первый рабочий опытен и сделает её на 50% быстрей, а второй неопытен и будет делать ее на 50% дольше.
Вы сказали: “Правило - в студию!” Вот оно правило.
Только это не то правило
На самом деле, эта задача про производительность (т.е. про скорость выполнения работы) при параллельной работе. Естественно, при одновременно выполняемой одной и той же работе скорость её выполнения (а следовательно, и время за которое её выполнят) прямо зависит от числа рабочих. Соответственно, в данном случае правильно производить сложение для определения итоговой производительности труда нескольких рабочих.
А теперь можно ввести в задачу и модификаторы.
Например, рабочим выдали инструмент, повышающий производительность на 50% и обязали соблюдать правила техники безопасности, которые снижают производительность на 50%.
Вопрос: как в таких условиях изменится время на выполнение работы по сравнению с исходным вариантом?
Никак не изменится, потому что инструмент повысит производительность в 1.5 раза, а ТБ - снизит в 1.5 раза.
Вот работа, на нее требуется 10 часов рабочего времени двух рабочих. Выдаем им инструмент, который повышает производительность на 50%. Давайте по шагам:
50% от 10 часов - это 5 часов. Т.е. время работы снизится до 10 - 5 = 5.
Заставляем их соблюдать ТБ, который понижает производительность на 50%.
50% от 10 часов - это 5 часов. Т.е. время работы повысится до 10 + 5 = 15.
Теперь вычисляем значение времени работы от двух факторов/модификаторов (да хоть как назвать):
(15 + 5) / 2 = 10.
В данном случае, мы суммируем не сами модификаторы, а результаты, полученные от каждого из них, а потом находим среднее арифметическое.
Таков ход, потому что мы оперируем уже результатами того, каким будет время работы от первого модификатора и от второго, причем по отдельности.
Второй подход:
первый модификатор (инструмент) снижает время работы на 50%, т.е. в математическом плане уменьшает его в 0.5 раза. Мы же хотим узнать, как изменится итоговое время работы, а не на сколько конкретно сам модификатор снизит время работы.
второй модификатор (ТБ) увеличивает время работы на 50%, т.е. в математическом плане увеличивает его в 1.5 раза. Мы же хотим узнать, как изменится итоговое время работы, а не насколько конкретно сам модификатор увеличит время работы.
Как же посчитать, обходя суммирование уже полученных результатов? Вспоминаем правило со школы, которое гласит следующее: А х (B + С) = А х B + А х С; A x (B - C) = A x B - A x C.
Поскольку первый снижает время, у него знак “-”, второй увеличивает - у него знак “+”.
Получаем: 10 х (-0.5 + 1.5) = 10 х 1 = 10.
На самом деле, не очень удачный пример с 50%, именно потому, что уменьшение исходного времени от первого модификатора равно самому же времени после его применения. Нет должной наглядности.
Возьмем другие данные:
Время работы - 10 часов.
Инструмент повышает производительность на 30%.
ТБ понижает на 20%.
Погнали рассуждать.
Первый модификатор снижает время работы на 30%. Находим это снижение: 10 * 0.3 = 3 часа. Итоговое время после применения первого модификатора: 10 - 3 = 7 часов.
Второй модификатор повышает время работы на 20%. Находим это повышение: 10 * 0.2 = 2 часа. Итоговое время после применения второго модификатора: 10 + 2 = 12 часов.
Вычисляем время работы после применения двух модификаторов: 7 + 12 = 19 / 2 = 9.5 часов. Это математика пятого класса, по-моему.
А теперь великая “вышка”. Эм, за 7-8 класс где-то от силы :fedp: В ней мы будем изначально суммировать влияние модификаторов, а уж потом применять к исходному времени работы:
Первый модификатор снижает время работы на 30%, значит итоговое время будет: Аиск1 = Аи - Аи * В.
Второй модификатор повышает время работы на 20%, значит итоговое время будет: Аиск2 = Аи + Аи * С.
Здесь Аиск1 - это искомое время от применения первого модификатора, Аиск2 - искомое время от применения второго модификатора, Аи - исходное время, В и С - первый и второй модификаторы соответственно.
- Аит = (Аиск1 + Аиск2) / 2. Здесь Аит - это итоговое время после применения двух модификаторов.
- Теперь подставляем во вторую часть выражения Аит = (Аиск1 + Аиск2) / 2 первые выражения:
Аит = ((Аи - Аи * В) + (Аи + Аи * С)) / 2.
- Вынесем за скобочки Аи: Аит = (2Аи - Аи * В + Аи * С) / 2.
- Разделим каждый член выражения в скобочках на 2. Согласно еще одному закону математики ( который вытекает из А х (B + С) = А х B + А х С; A x (B - C) = A x B - A x C ): (А + В) / С = А / С + В / С; А / С + В / С = (А + В) / С.
Аит = 2Аи / 2 - Аи * В / 2 + Аи * С / 2.
Получаем Аит = Аи - Аи * В / 2 + Аи * С / 2.
- Не имеет значения, вычтем ли мы сначала Аи * В / 2 из Аи или же прибавим Аи * С / 2 к Аи, поэтому меняем их местами. Аит = Аи + Аи * С / 2 - Аи * В / 2.
- Вынесем делитель “2” за скобку: Аит = Аи + (Аи * С - Аи * В) / 2.
- Вынесем общий множитель Аи за скобку: Аит = Аи + (Аи * (С - В)) / 2.
Обратите внимание, что модификаторы вычитаются. Если бы я в пункте 5 не менял местами модификаторы, а сделал я это для удобства себе и вам, то тогда было бы так: Получаем Аит = Аи - Аи * В / 2 + Аи * С / 2.
- Поменяем знак выражения “-Аи * В / 2” на положительный, не меняя всего выражения в целом: Аит = Аи + (Аи * (-В) / 2) + Аи * С / 2.
- Вынесем делитель “2” за скобку: Аит = Аи + (Аи * (-В) + Аи * С) / 2.
- Вынесем общий множитель Аи за скобку: Аит = Аи + (Аи * ( -В + С)) / 2.
Обратите внимание, что модификаторы складываются. По факту, все равно мы получаем разность “С - В”, что равносильно “-В + С”.
Т.е. происходит функция сложения / вычитания , но никак умножения / деления. Вы требовали правило. Мне пришлось самому его вывести для вас, потому что найти я не смог, чтобы прям оно звучало таким образом. Потратил кучу времени - спасибо))
Можете проверить, что Аит = Аи + (Аи * (С - В)) / 2, что Аит = Аи + (Аи * ( -В + С)) / 2. На выходе у вас будет пресловутые 9.5. И никакой дырки в логике по ходу решения вы не найдете.
Также здесь работает правило: если модификатор снижает итоговое значение, то идет со знаком “минус”, а общая формула такова: newValue = baseValue + baseValue * (mod1 + mod2 +…+modn) / 2.
Чтобы сделать ее более удобочитаемой: Аит = Аи + (Аи * (В + С)) / 2 - это есть Аит = Аи + Аи / 2 * (В + С), с учетом знаков модификаторов В и С.
И применимо опять таки к нашим value:
UPD: если же, конечно, три модификатора, то должен быть делитель “3”, вместо “2”. Т.е. общий вид таков: newValue = baseValue + baseValue / n * (mod1 + mod2 +…+modn)