더북(TheBook)

초보자들이 자주 하는 실수 중 하나는 조건을 i <= size(...)와 같이 작성하는 것이다. C++에서 인덱스는 0부터 시작하기 때문에 인덱스 i == size(...)는 이미 범위를 벗어난 상태다. 포트란(Fortran)이나 매트랩(MATLAB)을 사용한 경험이 있는 사람들은 0부터 시작하는 인덱스에 익숙해지려면 시간이 약간 필요하다. 1부터 시작하는 인덱스는 많은 사람에게 좀 더 자연스러우며 수학 문헌에서도 사용하는 방식이다. 그러나 대부분 0부터 시작하는 인덱스가 인덱스와 주소 계산을 하기에 더 간단한 방식이다.

또 다른 예로, 지수 함수의 테일러 급수를 계산할 수 있다.

 

열 번째 항까지 구해보자.

double x = 2.0, xn = 1.0, exp_x = 1.0;
unsigned long fac = 1;
for (unsigned long n = 1; n <= 10; ++n) {
    xn *= x;
    fac *= n;
    exp_x += xn / fac;
    cout << "e^x is " << exp_x << ‘\n;
}

여기서 0번째 항을 따로 계산하고 1번째 항부터 반복문을 시작하는 게 더 간단하다. 또한, 항x10/10!을 고려했는지 확인하기 위해 "작거나 같음" 비교 연산자를 사용했다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.