표기법

표준적인 표기법

시그마 표기

위의 표기는 부터 까지의 합을 의미한다.

코드로 보자면 단순히 합계를 구하는 루프이다.

def sum(n, a):
    """ 리스트 a의 1번째 원소부터 n번째 원소까지의 합을 구한다 """
    sum = 0
    for k in range(1, n+1):
        sum += a[k]
    return sum

# 결과는 2 + 4 + 8 = 14
print(sum(3, [0, 2, 4, 8, 10, 12, 14]))
  • 참고로 기호는 LATEX에서 \sum으로 쓴다.

일반화된 시그마 표기

  • 합산을 진행할 색인들의 집합을 규정하는 조건을 아래쪽에 명시해준다.(오른쪽 식)
  • 예: 100 미만의 모든 홀수의 제곱의 합
    • 색인이 이므로 [1, 3, 5, 7, ... n] 이다.

1부터 100까지의 모든 홀수의 제곱의 합을 구하는 것이므로, 심플하게 다음과 같이 생각해도 된다.

def sigma():
    """ 100 이하 모든 홀수의 제곱의 합 """
    sum = 0
    for k in range(1, 100, 2):
        sum += k**2
    return sum

print(sigma())  # 결과는 166650

한계 명시 시그마 표기

  • 한계 명시 표기법은 위쪽에 한계를 명시한다.
  • 조제프 푸리에(Joseph Fourier)가 1820년에 도입한 표기법.
def sigma():
    sum = 0
    for k in range(0, 49 + 1):
        sum += (2*k + 1)**2
    return sum

print(sigma())  # 결과는 166650
  • 결과가 166650으로 위의 코드 실행 결과와 똑같다.
    • 잘 살펴보면 두 식이 똑같다는 것을 알 수 있다.
    • 2k + 1k 값으로 0 ~ 49를 넣어 보면 1, 3, 5, ... 99 이다.

전통과 벗어난 표기법

  • 케네스 E. 아이버슨(Kenneth E. Iverson)이 프로그래밍 언어 APL에서 착안.
    • 명제가 참이면 1, 거짓이면 0.

이 표기법은 상당히 편리하고 이해하기 쉽다.

True1이고 False0 이므로 일반적인 프로그래밍 언어 상식과도 맞아 떨어진다.

bool(1 == 2) + bool(2 == 2) # 0 + 1 이므로 결과는 1

Links

  • [[CONCRETE-MATH]]