구체수학 02.합.04.다중합
02.SUMS.03.MULTIPLE SUMS
이 문서는 (책) CONCRETE MATHEMATICS(구체수학) 2장.합 - 4.다중합을 공부한 노트입니다.
둘 이상의 색인을 사용하기
색인이 여러 개 있어도 합 기호는 하나만 써도 된다.
∑1≤j,k≤3ajbk=a1b1+a1b2+a1b3+a2b1+a2b2+a2b3+a3b1+a3b2+a3b3위의 식을 python으로 표현하면 다음과 같다.
sum = 0
for j in range(1, 3+1):
for k in range(1, 3+1):
sum += a[j] * b[k]
아이버슨의 관례 사용
∑P(j,k)aj,k=∑j,kaj,k⋅[P(j,k)]복습: 아이버슨의 관례?
대괄호 안에 있는 내용이 true
이면 1
, 아니면 0
.
- 예
[2는 짝수] = 1
[2는 홀수] = 0
합 기호를 두 개 사용하는 경우: 합들의 합을 다루는 경우
∑j(∑kaj,k[P(j,k)])=∑j∑kaj,k[P(j,k)]2중 for문
과 똑같이 생각하면 된다.- 안쪽에서부터 실행된다고 생각하자. 즉, 위에서는
k
가j
보다 먼저다.
- 안쪽에서부터 실행된다고 생각하자. 즉, 위에서는
j
,k
는 콜렉션이라 생각하면 된다.- ∑j는 덧셈 루프에
j
콜렉션을 집어넣은 것이다. 즉 루프를 돌며j
의 원소가 하나씩 함수에 입력되고, ∑은 함수의 출력 결과가 나올 때마다 더한다.
- ∑j는 덧셈 루프에
- 주석을 붙이자면 다음과 같다.
합산 순서 교환 법칙(interchanging the order of summation)
∑j∑kaj,k[P(j,k)]=∑j,kaj,k=∑k∑jaj,k[P(j,k)]- 어차피 덧셈이라 순서가 바뀌어도 결과는 달라지지 않는다.
- 따라서 어느 쪽이 계산이 더 쉬울지 고려해서 계산하기 편한 쪽을 고른다.
일반 분배법칙(general distributive law)
이번 장 처음에 나온 ∑1≤j,k≤3ajbk 를 풀어보자.
회색으로 보이는 식은, 이해를 돕기 위해 붙인 것이다.
∑1≤j,k≤3ajbk=∑j,kajbk[1≤j,k≤3]=a1b1+a1b2+a1b3+a2b1+a2b2+a2b3+a3b1+a3b2+a3b3=∑j,kajbk[1≤j≤3][1≤k≤3]=a1b1+a1b2+a1b3+a2b1+a2b2+a2b3+a3b1+a3b2+a3b3=∑j∑kajbk[1≤j≤3][1≤k≤3]=(a1b1+a1b2+a1b3)+(a2b1+a2b2+a2b3)+(a3b1+a3b2+a3b3)=∑jaj[1≤j≤3]∑kbk[1≤k≤3]=a1(b1+b2+b3)+a2(b1+b2+b3)+a3(b1+b2+b3)=∑jaj[1≤j≤3](∑kbk[1≤k≤3])=a1(b1+b2+b3)+a2(b1+b2+b3)+a3(b1+b2+b3)=(∑jaj[1≤j≤3])(∑kbk[1≤k≤3])=(a1+a2+a3)(b1+b2+b3)=(3∑j=1aj)(3∑k=1bk)=(a1+a2+a3)(b1+b2+b3)위의 과정을 통해 "색인 J, K의 모든 집합에 대해 성립하는" 일반 분배법칙을 유도할 수 있다.
∑j∈Jk∈Kajbk=(∑j∈Jaj)(∑k∈Kbk)합산 순서 교환 기본 법칙의 변형들
크게 두 가지 버전이 있다.
vanilla version
- (2.27)과 똑같은 원리.
j
,k
의 limit가 독립적일 때 사용.
rocky road version
- 안쪽 합의 범위가 바깥쪽 합의 색인 변수에 의존적인 경우에 사용.
- 조건식을 좀 더 자세히 살펴보자.
- 좌변을 인수분해(factorization)하여 우변을 얻은 것이라고 책에서는 표현한다.
유용한 인수분해
[1≤j≤n][j≤k≤n]=[1≤j≤k≤n]=[1≤k≤n][1≤j≤k]아이버슨식 공식을 사용한 변환식
위의 공식을 활용하면 다음이 가능하다.
n∑j=1n∑k=jaj,k=∑1≤j≤knaj,k=n∑k=1k∑j=1aj,k아무래도 좌변보다 우변이 사용하기 쉬워 보인다.
응용: 상삼각 배열의 합을 단순한 단일합으로 표현하기
다음 식을 단순하게 정리하고 싶다고 하자.
∑1≤j≤k≤najak식만 갖고는 생각하기 어려우니까 단순하게 다음과 같은 배열이 있다고 상상해 보자.
위의 식은 아래 배열의 파란색 항목(대각선)과 빨간색 항목의 합이라 할 수 있다.
[a1a1a1a2a1a3⋯a1ana2a1a2a2a2a3⋯a2ana3a1a3a2a3a3⋯a3an⋮⋮⋮⋱⋮ana1ana2ana3⋯anan]삼각형 모양이니까… 이를 다음과 같이 축약하여 표현할 수 있을 것이다.
S◹=∑1≤j≤k≤najak [a1a1a1a2a1a3⋯a1ana2a2a2a3⋯a2ana3a3⋯a3an⋱⋮anan]즉, 우리의 목표는 S◹을 단순하게 정리하는 것이다.
한편, 파란색 항목과 까만색 항목의 합은 다음과 같이 표현할 수 있을 것이다.
S◺=∑1≤k≤j≤najak [a1a1a2a1a2a2a3a1a3a2a3a3⋮⋮⋮⋱ana1ana2ana3⋯anan]곰곰히 살펴보면 S◹=S◺ 라는 것을 알 수 있다!
(a1⋅a2=a2⋅a1 이기 때문)
이 아이디어를 식으로 표현하면 다음과 같다.
S◹=∑1≤j≤k≤najak=∑1≤k≤j≤nakaj=∑1≤k≤j≤najak=S◺덧붙여, 다음 사실도 알 수 있다.
[1≤j≤k≤n]+[1≤k≤j≤n]=[1≤j,k≤n]+[1≤j=k≤n]가나다라어려운 식 같지만 하나씩 살펴보면 이해할 수 있다.
- 가. [1≤j≤k≤n] 은 다음을 말한다.
- 나. [1≤k≤j≤n] 은 다음을 말한다.
- 다. [1≤j,k≤n]는 다음을 말한다.
- 라. [1≤j=k≤n] 는 다음을 말한다.
가 + 나 = 다 + 라
임을 어렵지 않게 알 수 있다.
아무튼, 이를 통해 다음을 유도할 수 있다.
2S◹=S◹+S◺=오른쪽 위 삼각형+왼쪽 아래 삼각형=∑1≤j,k≤najak+∑1≤j=k≤najak=전체+대각선=(n∑j=1aj)(n∑k=1ak)+∑1≤j=k≤najak=(n∑k=1ak)2+∑1≤j=k≤najak=(n∑k=1ak)2+n∑k=1(ak)2∴S◹=12((n∑k=1ak)2+n∑k=1(ak)2)응용: 또 다른 형태의 이중합을 정리하기
S=∑1≤j<k≤n(ak−aj)(bk−bj)이번에는 위의 식을 정리해 보자.
- 책을 보면 "
j
와k
의 교환에 대칭성이 존재한다."고 한다.j
와k
를 서로 바꾸어도 똑같다는 말이다.
이를 다음과 같이 2S = ...
의 형태로 정리할 수 있는데,
그 이유는 다음과 같다.
[1≤j<k≤n]+[1≤k<j≤n]=[1≤j,k≤n]−[1≤j=k≤n]오른쪽위삼각형(대각선제외)+왼쪽아래삼각형(대각선제외)=전체−대각선이제 계속 정리해 보자.
2S=∑1≤j,k≤n(aj−ak)(bj−bk)−∑1≤j=k≤n(aj−ak)(bj−bk)=∑1≤j,k≤n(aj−ak)(bj−bk)−0∵두번째 합의 조건이 j=k 이므로, aj−ak=0,bj−bk=0=∑1≤j,k≤n(aj−ak)(bj−bk)괄호를 전개하면=∑1≤j,k≤najbj−∑1≤j,k≤najbk−∑1≤j,k≤nakbj+∑1≤j,k≤nakbk=(∑1≤j,k≤najbj+∑1≤j,k≤nakbk)−(∑1≤j,k≤najbk+∑1≤j,k≤nakbj)=2∑1≤j,k≤nakbk−2∑1≤j,k≤najbk=2(∑1≤k≤n∑1≤j≤nakbk)−2∑1≤j,k≤najbk=2(∑1≤k≤nakbk∑1≤j≤n1)−2∑1≤j,k≤najbk=2(∑1≤k≤nakbkn)−2∑1≤j,k≤najbk=2n(∑1≤k≤nakbk)−2∑1≤j,k≤najbk=2n(∑1≤k≤nakbk)−2(n∑k=1ak)(n∑k=1bk)양 변을 2로 나누자S=n(∑1≤k≤nakbk)−(n∑k=1ak)(n∑k=1bk)∑1≤j<k≤n(ak−aj)(bk−bj)=n(∑1≤k≤nakbk)−(n∑k=1ak)(n∑k=1bk)(n∑k=1ak)(n∑k=1bk)=n(∑1≤k≤nakbk)−∑1≤j<k≤n(ak−aj)(bk−bj)=nn∑k=1akbk−∑1≤j<k≤n(ak−aj)(bk−bj)이를 통해 다음 항등식을 얻어내었다.
(n∑k=1ak)(n∑k=1bk)=nn∑k=1akbk−∑1≤j<k≤n(ak−aj)(bk−bj)체비쇼프 단조 부등식(Chebyshev's monotonic inequalities)
체비쇼프 단조 부등식은 위에서 얻어낸 항등식의 사례 중 하나이다.
(n∑k=1akn∑k=1bk)≤nn∑k=1akbk,ifa1≤⋯≤anandb1≤⋯≤bn;(n∑k=1akn∑k=1bk)≥nn∑k=1akbk,ifa1≤⋯≤anandb1≥⋯≥bn;교환법칙?
다중합과 단일합의 일반적인 합산 색인 변경 연산 사이의 관계를 살펴본다.
∑k∈Kak=∑p(k)∈Kap(k)- k∈K :
K
는 정수의 집합이다.k
는 정수 집합K
의 원소이므로 정수이다. - 함수
p(k)
의 리턴 타입이 정수이고, 모든 리턴 값이K
의 원소라면 위와 같이k
를p(k)
로 바꿔칠 수 있다.
여기에서, 색인 변수 k
를 f(j)
로 대체해보자.
f
는 정수 j∈J 를 정수 f(j)∈K로 대응시키는 함수이다.- 정수 배열
J
의 원소인j
를 입력했을 때, 정수 배열K
의 원소가 나오는 함수f
를 말하는 것이다.
- 정수 배열
그러면 다음과 같이 된다.
∑j∈Jaf(j)=∑j∈Jk∈Kak[f(j)=k]=∑k∈Kak∑j∈J[f(j)=k]=∑k∈Kak#f−(k)- 이때, #f−(k)는 집합 f−(k)의 원소의 갯수이다.
- f−(k)는 f(k)의 역함수이다.
- 즉, f−(k)는 f(j)=k를 뒤집은 것이다.
만약 f
가 J
와 K
를 일대일 대응시킨다면 #f−(k)의 값은 언제나 1이 된다.
그렇다면 (2.35)는 다음과 같이 정리할 수 있다.
∑j∈Jaf(j)=∑f(j)∈Kaf(j)=∑k∈Kak이는 교환 법칙과 똑같다.
구체적인 다중합의 예
Sn=∑1≤j<k≤n1k−j작은 값부터 생각해 보자.
S1=∑1≤j<k≤11k−j=0- 1≤j<k≤1 이므로, j=k=1 이어야 한다.
- 그러나 k−j 가 분모에 있으므로 이 합은 더할 항이 하나도 없다.
- 따라서
0
이다.
- 따라서
- 1≤j<k≤2 를 만족시키는
j
,k
는j = 1
,k = 2
밖에 없다.- 따라서
1
이다.
- 따라서
- 1≤j<k≤3 를 만족시키는
(j, k)
는(1,2)
,(1,3)
,(2,3)
밖에 없다.- 따라서 결과는
5/2
.
- 따라서 결과는
이제 이 식을 정리해 보자.
Sn=∑1≤j<k≤n1k−j=∑1≤k≤n∑1≤j<k1k−j안쪽 루프를 j에 대한 것으로 정리=∑1≤k≤n∑1≤k−j<k1jj를 k - j 로 교체=∑1≤k≤n∑1−k≤−j<k−k1j=∑1≤k≤n∑0<j<k−11j안쪽 루프 인덱스를 j 위주로 정리=∑1≤k≤nHk−1조화수이므로 Hk−1 로 교체=∑1≤k+1≤nHk=∑0≤k<nHk모양이 꽤 단순해졌지만, 아직 우리는 조화수의 합을 구하는 식을 모른다.
그래서 다른 방법으로 풀어야 한다.
Sn=∑1≤j<k≤n1k−j=∑1≤j<k+j≤n1k+j−jk를 k + j 로 치환=∑1≤j<k+j≤n1k=∑1≤k≤n∑1≤j≤n−k1k안쪽 루프를 j에 대한 것으로 정리=∑1≤k≤n∑1≤j≤n−k(1k+0⋅j)=∑1≤k≤n(n−k)⋅1k1≤j≤n−k를 만족시키는 j는 n−k개.=∑1≤k≤n(nk−kk)=∑1≤k≤n(nk−1)=∑1≤k≤nnk−∑1≤k≤n1=n(∑1≤k≤n1k)−n=nHn−n조화수이므로 Hn 으로 교체 ∴Sn=nHn−n∴∑0≤k<nHk=nHn−n앞에서 먼저 구한 식을 활용