6. 여러가지 수열과 시그마($\Sigma$)
[도입부] 학습 목표 (Learning Objectives)
- ‘더한다’는 의미를 가진 그리스 알파벳 대문자 시그마($\Sigma$) 기호에 대해 알아봅니다.
- 계차수열처럼 규칙이 겹겹이 쌓인 독특한 수열의 특징을 이해합니다.
- 파이썬(Python)에서 리스트 내포(List Comprehension) 문법이 수학의 시그마($\Sigma$) 기호와 얼마나 똑같이 생겼는지 직관적으로 배웁니다.
1. 합계의 끝판왕 기호, $\Sigma$ (시그마)
지금까지 우리는 $S_n$이라는 기호를 사용해 1번째 항부터 $n$번째 항의 합을 나타냈습니다. \(S_n = a_1 + a_2 + a_3 + \cdots + a_n\)
그런데 $S_n$은 치명적인 단점이 있습니다. 무조건 제 1항부터만 출발해야 한다는 점입니다! “3항부터 10항까지만 덧셈하라!” 같은 디테일한 명령을 수행하려면 아주 지저분한 식($S_{10} - S_2$)을 써야 했죠.
이 답답함을 한 큐에 해결하기 위해 수학자들은 그리스어 알파벳의 S 자를 닮은 18번째 글자, $\Sigma$ (시그마) 를 데려왔습니다. (Sum을 의미)
\(\sum_{k=1}^n a_k\)
이 무시무시하게 생긴 기호는 사실 프로그래머들이 환호하는 For 루프문의 완벽한 붕어빵입니다!
- 밑에 있는 $k=1$: “시작점(Start)은 1부터 해라!”
- 위에 있는 $n$: “끝점(End)은 $n$까지 돌려라!”
- 옆에 있는 $a_k$: “반복해서 꺼낼 일반항 데이터 모양!”
만약 3항부터 10항까지 더하고 싶다면, $\sum_{k=3}^{10} a_k$ 라고 쓰기만 하면 직관적이고 아름답게 명령이 완결됩니다.
2. 계차수열: 차이가 만들어내는 새로운 수열
등차수열이나 조화수열 외에도 여러 가지 특이한 수열이 있습니다. 그 중 대표적인 것이 계차수열입니다.
예를 들어 $1, 2, 4, 7, 11 \dots$ 이라는 수열을 봅시다.
- $2 - 1 = \mathbf{1}$
- $4 - 2 = \mathbf{2}$
- $7 - 4 = \mathbf{3}$
- $11 - 7 = \mathbf{4}$
본래 숫자의 차이(간격)들 모아보니 $1, 2, 3, 4 \dots$ 라는 새로운 수열이 탄생했습니다. 이렇게 원래 수열들의 ‘차이’가 만드는 두 번째 수열을 계차수열이라고 합니다. 계차수열의 합을 구하려면, 위에서 배운 강력한 무기 시그마($\Sigma$) 기호가 절대적으로 필요합니다! 차이값들을 끝없이 누적합산 해나가야 하기 때문입니다.
3. 💻 파이썬(Python)의 List Comprehension과 $\Sigma$ 의 평행이론
수학자들이 수식을 더 간결하고 짧게 쓰기 위해 $S_n$을 버리고 $\Sigma$ 를 도입했듯이, 파이썬 프로그래머들도 기존의 길고 지저분한 for문을 버리고 한 줄짜리 무적의 문법인 리스트 콤프리헨션(List Comprehension)을 만들었습니다. 두 기호의 생김새는 소름 돋게 일치합니다.
🐍 파이썬 예제: $\Sigma$ 와 List Comprehension의 완벽 대응
$S = \sum_{k=1}^5 (k^2 + 1)$ 이라는 매우 복잡한 시각적 식을 파이썬으로 옮긴다면?
# [전통적인 For 루프 (S_n 방식)]
total = 0
for k in range(1, 6): # 1부터 5까지
total += (k**2 + 1)
print(f"루프문 결과: {total}")
# [파이썬의 시그마: List Comprehension + sum() 기법]
# 한 줄 코딩! sum( [일반항] for k in range(시작, 끝) )
sigma_result = sum([(k**2 + 1) for k in range(1, 6)])
print(f"시그마 방식의 한 줄 코딩 결과: {sigma_result}")
# 둘 다 결과는 동일하게 60 이 나옵니다.
[(k**2 + 1) for k in range(1, 6)] 구조를 눈으로 잘 뜯어보세요.
(k**2 + 1): 시그마($\Sigma$) 옆에 붙어있던 일반항($a_k$)의 형태입니다.for k in range(1, 6): 시그마($\Sigma$) 기호 밑($k=1$)과 위($n=5$)에 선언한 반복 구간 설정입니다.- 바깥에 씌운
sum(): 이것이 바로 $\Sigma$의 대형 기호 그 자체를 의미합니다.
수학의 $\Sigma$를 코드로 치환한 이 한 줄 코딩은 파이썬 개발자들이 가장 사랑하는 ‘우아한(Pythonic) 코드’의 정수입니다. 결국, 기호만 다를 뿐 수학과 컴퓨팅은 완전히 동일한 생각을 교류하고 있다는 뜻입니다!
[결론] 학습 정리 (Summary)
- 시그마($\Sigma$)의 탄생: $S_n$의 한계를 극복하고, 시작 번호와 끝 번호를 내 마음대로 제어하며 합산하기 위해 고안된 강력한 덧셈 기호입니다.
- 계차수열: 원래 항과 항 사이의 차이값들 조차도 또 다른 등차/등비수열의 규칙을 가지는 복합형 수열을 계차수열이라 합니다.
- 코딩의 꽃, 리스트 콤프리헨션: 수학의 $\Sigma$ 기호가 하는 역할은 파이썬의
sum([일반항 for 변수 in 범위])한 줄 문법과 구조적으로 100% 동일하게 움직입니다.