01. 첫 번째 수업: 도대체 급수(Series) 가 뭔가요?

수학 교과서 어딘가에 파묻힌 단어, ‘수열(Sequence)’‘급수(Series)’. 프로그래머들에게 이 고리타분한 단어들은 파이썬의 가장 파워풀한 두 가지 기본 배열 조작법, listsum() 함수 메커니즘으로 일대일 번역됩니다.


1. 수열(Sequence): 그냥 숫자 담는 Array 배열

만약 당신의 인벤토리에 보석 개수가 1개, 3개, 5개, 7개… 이렇게 차곡차곡 예쁘게 진열되어 있습니다.

[1, 3, 5, 7, 9, ...]

컴퓨터 프로그래밍에서는 이런 숫자 묶음을 “배열(Array)” 혹은 “리스트(List)” 라 부릅니다. 수학자들은 콤마(,) 로 구분된 이 딱딱한 숫자 집합 명단을 멋있어 보이게끔 수열 (Sequence) 이라고 정의했습니다. 이게 끝입니다. 규칙을 가지고 나란히 선 숫자들의 파이프라인 줄 세우기입니다.

2. 급수(Series): 그 배열의 모든 칸을 무식하게 다 더해라! 루프 덧셈 sum()

자, 이제 이 수열 데이터베이스 Array 코드가 맘에 안 들었던 악마 해커가 나타나, 저 배열 칸막이 콤마 (,) 기호들을 뜯어버리고! 그 사이에 전부 폭력적인 플러스 (+) 더하기 기호를 때려 박아 강제 용접시켜 버립니다.

$\mathbf{1 + 3 + 5 + 7 + 9 + \dots}$

수학자들은 콤마가 플러스(+) 더하기로 마개조 당한 저 끔찍한 덧셈 콤보 덩어리를 “급수 (Series)” 라고 부릅니다!

  • 파이썬 코딩 번역: sum( [1, 3, 5, 7, 9, ...] )
파이썬의 List 배열처럼 콤마로 나열된 수열(Sequence)의 벽돌들을 뜯어내고 그 사이에 플러스 덧셈 기호로 강제 용접하여 급수(Series) 루프 덧셈 기관차로 마개조되는 모습을 시각화한 그래픽

어느 수열의 모든 항을 누적해서 계속 더해나가는 행위 연산 프로세스 자체가 바로 급수입니다. 그러니 급수라는 단어에 쫄 필요가 없습니다. “아, 배열에 있는 숫자를 처음부터 $\mathbf{100}$번째까지, 혹은 우주 끝날 때 $\mathbf{\infty}$(무한대) 까지 for 문으로 다 더해버리라는 파괴적인 누적 명령이구나!” 라고 생각하시면 됩니다.

3. “그걸 왜 다 더하는데 씹덕아…”

슈퍼마리오 첫 번째 판 클리어 스코어가 1점, 두 번째 판 스코어가 3점, 세 번째 판 5점… 우리는 마리오가 $100$스테이지까지 살아남고 골인했을 때 “니 영혼의 전체 종합 누적 스코어 결산 총점이 얼마냐?” 가 궁금해 미칠 지경입니다. 그래서 RPG 누적 데미지 계산, 주식의 누적 배당금 복리 이자 계산, 물리 엔진의 누적 면적(나중에 적분 떡밥) 에 이르기까지 이 “수열들을 줄줄이 다 합산해버리는 급수 파이프라인 $\sum$ (시그마)” 매크로는 모든 실생활 수학의 종착역 엔진이 됩니다.

이제 이 급수(덧셈) 중에서도, 악명 높은 두 가문, “등차수열 덧셈 파” 와 “등비수열 덧셈 파” 가 어떻게 거대하게 진화하는지 2장으로 진입합시다.

서브목차