June 28th, 2016

lenin

Не хочется изобретать велосипед

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

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

Например, пусть дан массив [99, 99, 99, 0, 0, 0, 100, 0, 0, 0].

Если мы возьмем подмассив, состоящий только из элемента 100, то среднее остальных элементов будет 3*99/9 = 33, а разность средних - 100-33 = 67.
Если брать в качестве подмассива группу из трех нулей, то среднее остальных равно (3*99+100)/7 = 56.714..., что хуже.
Если мы возьмем подмассив, состоящий из трех элементов, равных 99, то его среднее будет 99, среднее остальных элементов - 100/7 = 14.285..., а разность - 99-14.285... = 84.714... (максимум).

Но при увеличении количества нулей результат меняется. Пусть массив таков:
[99, 99, 99, (триста нулей), 100, (триста нулей)].

Тогда если взять подмассив [99, 99, 99], получим разность средних 99-100/601 = 98.8..., а если взять подмассив [100], получим 100-3*99/603=99.5..., и в этом случае подмассив [100] оптимален.
lenin

Борьба снаряда со бронёю

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

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