Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript로 허수 단위 i의 n제곱 값 구하기

문제 이해하기

이번 글에서는 숫자 하나를 입력받아 허수 단위 i의 n제곱 값을 반환하는 JavaScript 함수를 작성해 보겠습니다.

여기서 허수 단위 i는 다음과 같이 정의됩니다.

i = √(-1)

허수의 거듭제곱은 아래와 같은 규칙적인 패턴을 따릅니다.

i¹ = i
i² = -1
i³ = -i
i⁴ = 1

핵심 아이디어: 4주기 패턴 활용

i의 거듭제곱은 4번마다 동일한 값으로 순환합니다. 즉, 지수가 아무리 커져도 4로 나눈 나머지만 확인하면 결과를 바로 알 수 있습니다.

  • n % 4 === 0 → 결과는 1
  • n % 4 === 1 → 결과는 i
  • n % 4 === 2 → 결과는 -1
  • n % 4 === 3 → 결과는 -i

코드 구현

다음은 위 원리를 switch문으로 구현한 코드입니다.

const num = 657;

const findNthPower = (num = 1) => {
  switch (num % 4) {
    case 0:
      return '1';
    case 1:
      return 'i';
    case 2:
      return '-1';
    case 3:
      return '-i';
  }
};

console.log(findNthPower(num));

실행 결과

i

동작 원리 살펴보기

입력값 657을 4로 나누면 몫은 164, 나머지는 1입니다. 따라서 num % 4의 값이 1이 되고, switch문의 case 1에 해당하여 문자열 'i'가 반환됩니다.

이처럼 나머지 연산자(%)를 활용하면 지수가 매우 큰 경우에도 상수 시간(O(1))에 결과를 계산할 수 있어 효율적입니다. 실제로 657제곱처럼 어마어마한 지수도 한 번의 나눗셈만으로 답을 구할 수 있습니다.