Ось швидкий випуск у понеділок вранці ...
Напишіть функцію або програму найменшою кількістю байтів, які:
- Приймає як вхід список
[x,y]координат - Приймає як вхід список
[x,y]відповідних мас координат - Виводиться обчислений центр маси у вигляді
[xBar,yBar].
Примітка:
- Введення можна приймати в будь-якій формі, якщо використовується масив.
Центр маси можна обчислити за такою формулою:

Простий англійською мовою ...
- Щоб знайти
xBar, помножте кожну масу на відповідну x координату, підсумовуйте отриманий список і діліть його на суму всіх мас. - Щоб знайти
yBar, помножте кожну масу на її відповідну координату y, підсумовуйте отриманий список і діліть його на суму всіх мас.
Приклад Trivial Python 2.7:
def center(coord, mass):
sumMass = float(reduce(lambda a, b: a+b, mass))
momentX = reduce(lambda m, x: m+x, (a*b for a, b in zip(mass, zip(*coord)[0])))
momentY = reduce(lambda m, y: m+y, (a*b for a, b in zip(mass, zip(*coord)[1])))
xBar = momentX / sumMass
yBar = momentY / sumMass
return [xBar, yBar]
Випробування:
> center([[0, 2], [3, 4], [0, 1], [1, 1]], [2, 6, 2, 10])
[1.4, 2.0]
> center([[3, 1], [0, 0], [1, 4]], [2, 4, 1])
[1.0, 0.8571428571428571]
Це код-гольф, тому виграє найменша кількість байтів!
[x,y,m],[x,y,m]...:?
[(x1,y1,m1), (x2,y2,m2)], наприклад, список кортежів? Або не має значення, чи аргументи є кортежами, списками або масивами? А як щодо трьох списків / масивів?

