Oto szybkie wyzwanie w poniedziałek rano ...
Napisz funkcję lub program w najmniejszej liczbie bajtów, która:
- Pobiera na wejściu listę
[x,y]współrzędnych - Pobiera na wejściu listę
[x,y]odpowiednich mas współrzędnych - Wysyła obliczony środek masy w postaci
[xBar,yBar].
Uwaga:
- Dane wejściowe można przyjmować w dowolnej formie, o ile używana jest tablica.
Środek masy można obliczyć według następującego wzoru:

W prostym angielskim...
- Aby znaleźć
xBar, pomnóż każdą masę przez odpowiednią współrzędną x, zsumuj wynikową listę i podziel ją przez sumę wszystkich mas. - Aby znaleźć
yBar, pomnóż każdą masę przez odpowiednią współrzędną y, zsumuj wynikową listę i podziel ją przez sumę wszystkich mas.
Przykład z 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]
Przypadki testowe:
> 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]
To jest golf golfowy, więc wygrywa najmniej bajtów!
[x,y,m],[x,y,m]...:?
[(x1,y1,m1), (x2,y2,m2)]np. Listą krotek? Czy nie ma znaczenia, czy argumentami są krotki, listy czy tablice? Co z trzema listami / tablicami?

