Статья Автор: Лебедев Дмитрий

TUZ_2-07 Поиск точки опоры физических весов

TUZ_2-07 Поиск точки опоры физических весов

TUZ_2-07 Поиск точки опоры физических весов
2.7. Поиск точки опоры физических весов
Под «точкой опоры» подразумевается точка равновесия в списке весов, где общий вес на левой стороне равен общему весу на правой стороне. Эта задача требует определить позицию в непустом списке числовых значений, которая может служить опорой и сбалансировать вес обеих сторон.
Согласно принципам физики, перекладина весов достигает равновесия, когда силы, действующие на оба ее конца, равны. Ваша задача: написать функцию, которая принимает список чисел и возвращает положение точки опоры, уравновешивающей веса. Если такая позиция не существует, то функция должна вернуть –1.
В табл. 2.7 показаны ожидаемые результаты для некоторых входных данных.
Таблица 2.7. Некоторые ожидаемые результаты для разных входных значений в задаче поиска точки опоры
Веса Ожидаемый результат
6, 6, 9 -1
43, 51, 35, 4 1
19, 25, 5, 42, 38, 8, 34, 16, 14, 8, 47, 42, 4, 20, 23 7
7, 24, 3, 38 2

Алгоритм
Чтобы найти положение точки опоры в непустом списке числовых значений, уравновешивающей веса по обе стороны от нее, для каждого индекса в списке алгоритм определяет совокупный вес по обе стороны и возвращает индекс, в котором точка опоры сохраняет баланс (т. е. когда сумма весов по левую сторону равна сумме весов по правую сторону). Если такой позиции не существует, алгоритм возвращает –1.
Ниже подробно описаны шаги, выполняемые алгоритмом.
1. Получает список чисел weights.
2. Использует цикл for с функцией range для перебора индексов во входном списке.
3. Для каждого индекса i вычисляется сумма весов слева от точки опоры (сумма значений элементов с индексами меньше i), дополнительно при подсчете суммы значение каждого элемента умножается на его расстояние от точки опоры (т. е. i – j). Аналогично определяется сумма весов справа от точки опоры (сумма значений элементов с индексами больше i).
4. Если суммы весов слева и справа равны (т. е. точка опоры сбалансирована), то возвращается текущий индекс i.
5. Если позиция, удовлетворяющая условиям задачи, не найдена, то возвращается –1.
Следуя этим шагам, алгоритм может определить положение точки опо- ры, уравновешивающей веса во входном списке.


Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать