벡터 를 정규화 하는 것은 방향을 일관되게 유지하면서 길이를 1 ( 단위 벡터 )로 조정하는 것입니다.
예를 들어 3 개의 성분 u 로 벡터를 정규화하려면 먼저 길이를 찾습니다.
| u | = sqrt (u x 2 + u y 2 + u z 2 )
... 각 값을이 값으로 조정하여 길이 1 벡터를 얻습니다.
û = u ÷ | u |
도전
비어 있지 않은 부호있는 정수 목록을 제공하고 벡터로 해석하여 정규화하는 프로그램이나 함수를 작성해야합니다. 예를 들어 (소수점은 소수점 이하 두 자리로 반올림)과 같이 여러 차원에서 작동합니다.
[20] -> [1]
[-5] -> [-1]
[-3, 0] -> [-1, 0]
[5.5, 6, -3.5] -> [0.62, 0.68, -0.40]
[3, 4, -5, -6] -> [0.32, 0.43, -0.54, -0.65]
[0, 0, 5, 0] -> [0, 0, 1, 0]
규칙 :
- 입력 목록이 다음과 같이 가정 할 수 있습니다.
- 0이 아닌 요소가 하나 이상 있어야합니다.
- 언어의 표준 부동 소수점 범위 내의 숫자 만 포함
- 출력값은 소수점 이하 두 자리 이상 정확해야합니다 . 언어가 내부적으로 데이터를 저장하는 방법 인 경우 "무한 정밀도"분수 / 기호 값을 반환 할 수도 있습니다.
- 제출은 I / O를 수행하는 전체 프로그램이거나 기능이어야합니다. 함수 제출은 새 목록을 리턴하거나 주어진 목록을 제자리에서 수정할 수 있습니다.
- 내장 벡터 함수 / 클래스가 허용됩니다. 또한 언어에 임의의 수의 차원을 지원하는 벡터 유형이있는 경우 이들 중 하나를 입력으로 사용할 수 있습니다.
이것은 코드 골프 경연 대회이므로 가능한 가장 짧은 솔루션 (바이트)을 달성하는 것을 목표로해야합니다.