다음은 월요일 아침의 빠른 도전입니다 ...
다음과 같은 최소 바이트 수로 함수 또는 프로그램을 작성하십시오.
[x,y]좌표 목록을 입력으로받습니다.[x,y]좌표의 각 질량 리스트를 입력으로 받습니다.- 계산 된 질량 중심을 형식으로 출력합니다
[xBar,yBar].
노트 :
- 배열이 사용되는 한 어떤 형태로든 입력 할 수 있습니다.
평범한 영어로 ...
- 를 찾으려면
xBar각 질량에 각각의 x 좌표를 곱하고 결과 목록을 합한 후 모든 질량의 합으로 나눕니다. - 를 찾으려면
yBar각 질량에 각각의 y 좌표를 곱하고 결과 목록을 합한 후 모든 질량의 합으로 나눕니다.
사소한 파이썬 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)]예를 들어 튜플 목록은 어떻습니까? 아니면 인수가 튜플, 목록 또는 배열인지 여부는 중요하지 않습니까? 세 개의 목록 / 배열은 어떻습니까?


