수학 - 선형 스케일 만들기
배열 사이의 값을 선형으로 나열한다.
이번 예시로 배열이 25개인 경우 계산하는 방법에 대해 바로 알아보자.
수식은 대상 값을 1로 설정한 것이라 간단하다.
Y = N / Nmax
1이 아닌 256으로 스케일업한다면 다음 수식을 이용할 수 있다.
Y = N / Nmax * Nmax
엑셀에서 선형 데이터 사용해보기
엑셀에서 인덱스 값을 오름차순으로 주어지고 Number 열 데이터에 위에 제시한 식을 넣어주면 선형 차트를 볼 수 있다.
선형 데이터 오프셋 추가
데이터를 다뤄보면 0부터 시작하지 않고 건너뛰어서 시작하기도 하다. 이를 오프셋 또는 start 변수 이름으로 주어진다. 오프셋 위치부터 끝까지 따라가는 선형을 만들어보자.
식은 다음과 같다.
- Y = (Ymax - Ymin) * X + Ymin
여기서의 X 값은 Number 선형 데이터를 가리킨다.
엑셀로 오프셋 표현하기
25개의 배열로 오프셋을 0.12 부터 시작한다고 가정하고 엑셀로 표현해보자.
요구사항대로 잘 처리한 것을 볼 수 있다.
컴퓨터 공학 개선하기
먼저 소개한 선형 숫자를 만들 때 나누기 연산을 한 것을 볼 수 있다. double 타입에서 부동소숫점으로 인해 정확한 데이터가 나온다는 보장이 없으므로 연산 결과가 이상한 경우 반올림 하거나 은행에서 사용하는 Decimal 라이브러리 사용한다.
그리고 나누기 연산을 속도 최적화 할 수 있는데. 종속 변수로 자주 사용하거나 레인지 크기가 억을 넘어 조 단위로 연산이 필요한 경우에 나누기를 모두 곱셈으로 변경하는 것이다.
먼저 Magic Code 변수부터 만들어보자.
이 연산은 나눗셈 한번만 사용된다.
M = Ymax / (Nmax * Nmax)
다음으로 선형 배열에 들어갈 수식이다.
Y = Ymax * (X-Ymax) * M
위 수식은 나눗셈이 없고 곱셈만 있으므로 컴파일러가 실행이 가장 빠른 최적화로 생성해준다.
사실, 먼저 소개한 Y = N / Nmax 수식도 최적화를 해주므로 둘의 차이를 거의 느끼기 어려울 수 있다.