죄수의 딜레마, 재탕

세상을 살아가는데 경쟁과 투쟁과 싸움은 항상 있는 일이다.

얼마 전에 겪은 일이다. 난 학교 옆에서 자취를 하고 있는데, 주인집 할머니가 수도 요금이 나왔다고 해서 돈을 내러 갔다. 전기요금이나 가스요금과는 달리 수도요금은 주인집에만 계량기가 달려있고 각 자취방에서 쓰는 물값이 전부 일괄적으로 계산되기 때문에 개별적으로 누가 얼마나 썼는지 알 수가 없다. 따라서 사람 수 대로 n등분해서 내게 되고, 이 방법이 대체로 공평하다고 생각한다. 문제는 지난달까지는 내가 친구랑 같이 살았고 이번달부터는 혼자 산다는 점이다. 지난달 요금은 2인분을 내는게 맞고 이번달부터 1인분을 내는게 맞긴 한데, 주인집 할머니는 우리집을 1인분으로 쳐서 n등분을 했다(약 8천원). 그러더니 2인분을 내라면서 8천원을 더 받아갔다. 나야 수학도 전공했으니 n분의 2가 아니라 n+1분의 2가 되어야 한다는 사실을 즉시 깨달았지만, 귀찮아서 일단 냈다. 물론 앞으로도 그거 갖고 따질 생각은 없다.

자, 그럼 이제 내가 얼마나 더 냈는지 따져보도록 하자.

우리 건물에 살고 있는 사람이 몇명인지 모르므로 그냥 n명이라고 가정하자. 난 n등분된 돈을 2인분을 냈으니 n분의 2를 낸 것이고, 원래는 n+1분의 2를 내야 한다. 즉, 난 원래 낼 돈의 n분의 n+1을 더 낸 것이다. 약분하면 1과 n분의 1이다. 즉, 내가 낸 돈을 a원이라고 한다면, 내가 낸 돈 a원은 원래 낼 돈을 n등분한 것 중의 하나 만큼 더 낸 셈이 된다. 따라서 내가 원래 내야 할 돈은 a원의 n+1분의 n이다.

아무튼 이런 수도요금 체계를 가진 상황에서 각 자취방 사람들의 생각을 한번 생각해보자. 이런건 자취방이 2명있고, 수도요금을 딱 절반씩 나눠내는 상황이라고 가정해도 일반성을 잃지 않는다.

예를들어 수도요금이 10000원이 나왔다면 나는 5000원을 내게 될 것이다. 문제는, 저쪽이 실제로 5천원어치 이상을 썼는데 저쪽은 5천원만 내고 내가 나머지 부분을 낸다면, 이건 억울한 일 아닌가? 확실히 억울하지? 그럼 내가 억울하지 않으려면 어떻게 하면 될까? 정답 : 저쪽보다 많이 쓰면 된다.

문제는 이 생각을 나만 하는 것이 아니라는 점이다. 저쪽이라고 해서 머리가 딱히 나쁠 이유도 없고, 나랑 똑같은 생각을 할 수 있다. 그럼 이제 경쟁이 시작된다. 서로 상대방보다 더 많이 써야만 내가 사용한 요금을 상대방이 내 주는 폭이 커지기 때문에 경쟁을 하게 되는 것이다. 이제 수도 요금은 한도없이 많이 나오게 된다.

이런 상황을 방지하려면 서로가 이것을 미리 생각하고, 서로 협력해서 어느정도 이상을 쓰지 않기로 자제하는 것이 가장 좋다. 하지만 상대방을 믿을 수 있을까? 한달에 한번도 마주치기 힘든 옆집 사람을 믿는다는건 현대 사회에서 굉장히 드문 일이다. (물론 이런 현실이 안타깝긴 하다.)

이 상황은 곧장 죄수의 딜레마로 연결된다. 서로 협력하면 둘 다 같은 이익을 얻는다. 하지만 배신하면 배신을 한 쪽은 큰 이익을 얻고 배신 당한쪽은 손해를 본다. 그리고 둘 다 배신하면 둘 다 손해를 본다. 선택은, 자주 있는 일이지만, 둘 다 배신하는 쪽으로 결론이 난다.

죄수의 딜레마의 변형된 형태는 여러가지가 있는데, 여기서는 윌리엄 파운드스톤의 “죄수의 딜레마”라는 책을 참고하여 몇가지 예를 들어 보겠다. 물론 내 맘대로 각색하였다.

둘이서 수도요금을 나눠 내는데, 더 많이 쓴 사람이 전액을 부담한다면? 이 경우는 서로 수도를 쓰지 않기 위해 노력할 것이고, 그 결과 최종적으로는 아무도 물을 사용하지 않는 건조한 일상이 시작될 것이다.

반대로 더 적게 쓴 사람이 전액을 부담하는 경우는 내가 처음에 얘기했던 예의 극단적인 경우에 해당하므로 앞서와 같은 결론이 나올 것이다.

규칙을 바꿔보자. 둘이서 수도 요금을 내야 하는데, 두 사람은 서로 별로 친하지도 않으며 서로 의견 교환을 할 생각이 전혀 없다. 그런데 고지서가 두 자취방의 공통 대문 앞에 꽂혀 있는 것이다. 누구든지 마감일까지 요금 전액을 낸다면 연체료는 없다. 하지만 아무도 내지 않으면 다음달에 연체료가 가산되어 청구될 뿐만 아니라 계속 안내면 수도가 끊긴다. 이런 상황에서 요금을 내는 사람은 누구일까?

이 딜레마는 “겁장이의 딜레마”의 변형인데, 가장 좋은 것은 둘 다 “동시에” 대문 앞에서 만나서 반반씩 내는 것이다. 그 다음은 어느 한쪽이 확 내버리는 거고, 가장 나쁜경우는 둘 다 안내는 것이다.

다른 경우도 있다.

수도요금 중에서 자신이 몇%를 낼 수 있다고 선언하는 것이다. 물론 서로 얼마나 썼는지는 모르고 요금의 총액만 알고 있다. 즉, 1호실 사람과 2호실 사람이 있으면, 1호실 사람이 “난 10%를 낼 수 있어”라고 선언하고 2호실 사람이 “난 14%를 낼 수 있어”라고 선언하는 것이다. 물론, 이 선언은 서로 모르는 상태에서 “동시에” 이루어져야 한다. 그럼 각자 10%와 14%를 일단 낸다. 남은 돈에 대해서 다시 이 일을 반복해서, 낸 돈의 합이 수도요금 총액이 되면 그만 둔다. 이런 경우 최종적으로 어떻게 될까? 아마 50%씩 내는게 최종 결과일것 같긴 한데, 난 게임 이론의 전문가가 아니라서 어떻게 분석해야 할지는 모르겠다. 정답을 아는 분께 댓글좀 부탁드린다. 이건 “달러 경매”의 변형된 버전이다.

아무튼, 죄수의 딜레마의 여러가지 변형된 형태들은 실생활에서 이런식으로 적용될 수 있다. 물론 수도 요금은 서로 사용한 만큼 내는게 가장 공정하다고 생각한다.

행복에 관하여

사람들은 행복을 찾는다.

행복하면 좋은가?

남들이 다들 찾는다고 해서 유행처럼 행복을 찾아가고 있는 건 아닐까?

남들이 가진 행복이 부러워서 나도 행복하고 싶어지는 건 아닐까?

각자가 갖고 있는 행복함의 기준은 다를 것이다. 언제 행복할까?

난 사실 행복하지만 불행하다는 착각에 빠져 있거나, 불행한데도 행복하다는 착각에 빠져 살고 있는건 아닐까?

이런식으로 생각하는 것 자체가 불행하다는 증거는 아닐까?

나는 주변 사람들이 나에게 “행복하세요~”라는 말을 할 때마다 생각한다. 나는 왜 행복해야 하는가?

사실, 남에게 행복하라는 말을 하기 전에 스스로 고민해 봐야 한다. 내가 남들이 행복하기를 바라는 마음에서 했던 행복하라는 말이 그 사람에게 행복을 가져다 줄 것인가? 그 사람이 “내 기준”에서 행복하기를 바란다면 그건 강요가 될 것이다. 많은 사람들은 자신이 보는 행복이 절대적인 모습이라고 생각하면서 남들도 자신의 행복을 따라서 행복할 것을 요구한다. 하지만 그렇지 않다. 모두에게 개성이 있듯이 각자가 원하는 행복도 모두 다를 것이다.

남들이나 또는 자신이 행복하기를 바라기 이전에, 자신이 바라는 행복이 무엇인지, 왜 행복해야 하는지, 어떻게 행복해질 수 있는지를 잘 생각해 봐야 할 것이다.

만약 그런 고민이 없다면, 행복하다가 행복을 잃어버렸을 때 너무나 큰 절망 속에서 빠져나올 수 없을지도 모르기 때문이다. 스스로가 행복하다고 생각하고 있었는데 그런 조건들이 충족되지 않으면, 그럼 불행한건가?

사실 행복해지는 일은 대단히 쉽다. 행복함의 기준을 바꿔서 현재의 자신의 상황이 행복한 상태가 되도록 조정하면 된다. 인생 뭐 있겠는가.

당신이 행복을 찾아 헤매고 있는 한 당신은 불행하다.

찾지 말라는 뜻이 아니다. 불행해지라는 뜻도 아니다. 현재가 불행하다고 생각하거나, 아니면 덜 행복하다고 생각해서 그것을 찾아 지금 상황에서 떠난다면 그것이 또한 불행해 질 수 있다는 점을 생각해 볼 필요가 있다는 뜻이다.

원하는 것이 있다면 찾아 떠나라. 그 원하는 것이 어디에 있는지 모르기 때문에 떠날 것이다. 중요한건 “모른다”는 부분에 관한 정확한 이해이다.

어디에 있는지 모른다는 점이 말해주는 것은 그 원하는 것이 멀리 있을 가능성도 있고 가까이 있을 가능성도 있으며 이미 여기에 있을 가능성조차도 있을 것이라는 점이다. 뭐, 멀리 있는 걸 찾기 위해 멀리 떠나서 결국 찾았다면 좋겠지만 여기에 있는 걸 모르고 멀리 떠났다가 다시 돌아왔을 때 발견한다면 찾긴 찾았어도 아쉽지 않을까?

그러므로, 떠날 때는 신중하게 떠나야 할 일이다.

전부 더하기 -적분

미적분학에서 자세한 계산은 미적분학 책이나 수학의 정석에 잘 나와 있으므로 여기서는 다루지 않겠다. 이 글에서 다루는 것은 오직 핵심 개념의 이해이다.

미분은 지난 시간까지 대충 해 보았다. 이번에는 급수와 적분에 대한 설명을 해 보겠다.

적분은 어떤 것의 “크기”를 정확하게 계산하기 위해서 사람들이 만들어낸 방법이다. 크기는 무엇일까? 내가 지난번에 크기를 재는 것이 심오하다는 말을 한 적이 있었는데, 바로 그 심오한 방법을 가장 간단하고 짧게 설명하는 것이 이 글의 목적이 될 것이다.

우선, 우리가 알고 있는 숫자의 크기에 대해 생각해 보자. 숫자는 원래 물건의 갯수에서 일반화되어 출발한 것이므로, 물건의 수가 많을수록 숫자가 커지도록 배정되어 있을 것이다. 하지만 우리가 항상 물건만 세면서 살 수는 없는 노릇이므로 뭐라 말하기가 참 곤란하다. 그러므로, 최소한 여러분들이 1보다 2가 크다는 정도의 크기 비교는 할줄 안다고 생각하고서 이 글을 진행시켜 나가야겠다.

크기를 재는데 가장 쉬운 것이 바로 “벡터”이다. 벡터는 두 점을 이어주는 화살표라고 생각하면 된다. 벡터의 길이는 자를 대고 그 크기를 재면 끝난다. 벡터가 (2,3,5,6)등으로 좌표로 나타나 있으면 피타고라스의 정리를 이용해서 각 좌표의 제곱을 더하고, 다시 그 제곱근을 계산하면 크기가 된다. 그런데, 좌표가 무한히 많이 주어져 있다면? 즉, (a,b,c,d,…)해서 끝없이 무한히 많이 간다면 어떻게 될까?

이거 잘 보면, 지난번에 봤었던 수열과 비슷하게 생기지 않았나? 1,2,3,4…번째 좌표에 대해서 각각 숫자가 하나씩 주어져 있다면, 이건 역시 수열이잖아? 만약 이 수열이 발산해버린다면, 수열의 제곱도 발산할 것이고, 그럼 그 합도 발산할 테니까 당연히 이런 벡터의 크기는 무한대가 될 것이다. 이런 무한대가 나와버리면 우리는 이 벡터에 대해서 아무런 말도 할 수가 없다. 그럼, 이건 무한대로 발산하지 않는다고 하자. 즉, 좌표가 무한히 이어지는 벡터를 수열이라고 생각하면, 이 수열이 수렴한다고 해 보자.

여전히 문제는 남아있다. 만약 이 수열이 1로 수렴한다면, 이 수열의 제곱은 어느 항 이후부터는 1의 근처에 있을 것이고, 당연히 이걸 전부 더하면 여전히 무한대다. 그러므로 이런 벡터도 곤란하다. 즉, 좌표의 값들이 수렴할 뿐만 아니라 그걸 전부 더한 것도 수렴해야 한다는 것이다. 안그러면 우린 이 벡터의 크기가 무한대가 나오기 때문에 아무말도 할 수가 없다.

이제, 크기가 유한한 벡터들만 갖고서 생각을 해 보자. 크기가 유한한 벡터이면 이런 벡터는 좌표가 무한히 많이 있어도 그 크기를 잴 수가 있다. 이런식으로 무한히 숫자가 많은 것들을 다 더하는 것을 무한급수(Infinite Series)라고 부른다. 물론 급수의 수렴성을 판단하는 건 많이 어려운 문제가 되겟지만, 그런건 교과서에서 배우도록 하고 여기서는 그냥 넘어가자.

그런데 만약 좌표가 연속적으로 변한다면?

전에 수열에서 함수로 갈 때 불연속적으로 주어진 항 번호를 연속적인 숫자로 바꿔나갔었다. 그럼 이번에도 마찬가지 일을 해야 할 건데, 크기를 재려면 각각의 항을 제곱해서 더해야 하는 것이다. 그런데 이 경우, 항이 무한히 많을 뿐만 아니라, 아무리 작은 구간을 잡아도 무한히 많은 항이 있기 때문에 “확실하게” 발산한다. 어쩌지?

여기서 바로, 연속적으로 이어지는 숫자들을 전부 더하는 것을 하는 방법이 “적분Integral”이다. 기본적인 개념은 각각의 항에 아주 작은 숫자를 곱해서 전체가 발산하지 않고 유한하도록 조정해주는 것이다.

예를들어, 0부터 1까지 어떤 함수 f(x)의 크기를 잰다고 해 보자. 그럼 f(x)는 벡터의 좌표를 말해주는데, 벡터의 크기를 재야 하므로 제곱해서 다 더해야 할 것이다. 제곱은 하겠는데, 무슨수로 다 더할까? 그럼, 일단 구간을 n개로 잘라보자. 그럼 n개의 수열이 나올 것이다. 그걸 다 더하면 되지 않을까? 하지만 이게 정확한지 아무도 보장해주지 않는다. f(x)라는 함수를 0부터 1까지 딱 그려놓고서, 이걸 n조각으로 잘랐어. n개의 조각중에서 k번째 조각 하나만 봐도, 이건 그럼 다시 m조각으로 자를 수도 있잖아? 그럼 대체 어쩌라는건가?

헷갈린다. 그러니까, 규칙을 좀 바꿔보자. 그냥 더하는게 아니라, n개의 조각을 냈으면 0과 1사이에는 n개의 구간이 있을텐데, 각각의 구간의 크기를 더할 값에다 곱해주는 것이다. 예를들어, d(k)가 k번째 구간의 길이를 말해주고, f(k)가 k번째 구간의 함수값이라고 한다면 f(k)*d(k)를 다 더해주면 될 것이다.

잠깐! k번째 구간에서 함수값이 일정한것도 아닌데 그렇게 막 넘어가도 돼?

그렇다. 그냥 넘어갈 뻔 했다. 뭐, 좋다. 그럼 이렇게 해보자. k번째 구간에서 가장 큰 값이 있고 가장 작은 값이 있을것이다. 두가지 경우를 생각하는데, f(k)를 항상 가장 큰 값으로 정하는 것과 항상 가장 작은 값으로 정하는 경우일 것이다. 나머지, 다른 함수값인 경우들은 항상 그 사이에 있을 것이므로 걱정하지 말도록 하자.

가장 큰 값으로 정하는 경우와 가장 작은 값으로 정하게 되면, 함수가 일정하지 않으므로 아마 가장 큰 값과 가장 큰 값 사이의 차이에 구간의 길이를 곱한만큼의 차이가 나게 될 것이다. 하지만 우리는 지금 구간을 맘대로 잡을 수 있을 것이다. n조각을 낸 것을 다시 각각 m조각을 더 낸다면? 구간은 더 짧아질 것이고, 각 구간은 더 짧아졌으므로 그 구간에서 가장 큰 값과 가장 작은 값 사이의 거리는 아마 짧아졌을 것이다. 이런식으로 구간을 무한히 많이 잘라 나가면 가장 큰 값으로 정해서 덧셈을 계산한 것과 가장 작은 값으로 정해서 덧셈을 계산한 것 사이의 차이가 없게 될 것이다.

다시 잠깐! 정말??

이건 사실 모르는 거다. 그렇기 때문에, 이런 경우 수학자들은 다시 정의를 한다. 구간을 임의로 나눠서, 위에서 설명한 방법중에 각 구간에서 가장 큰 값을 이용해서 덧셈을 계산한 것과 가장 작은 값을 이용해서 계산한 것 사이의 차이가 0으로 수렴하면, 우리는 이러한 함수를 “적분 가능”하다고 하고, 그 계산값을 “함수 f(x)의 적분”이라고 부른다.

중간에 뭔가 어물쩡 넘어간 부분이 많긴 하지만, 아무튼 적분은 이렇게 탄생했다.

좀 더 자세히 말하자면, 지금 얘기한 적분은 리만Riemann 적분이다.

적분이론은 적분이 안되는 것들의 크기를 재기 위해서 발전해 왔는데 리만-스틸체스(Riemann-Stieltjes) 적분론, 르벡Lebesgue적분론 등을 수학과에 오면 배울 수 있다.

그중에서 구간을 임의로 자르지 않고 단순히 n개의 조각으로 똑같이 나누는 것은 고등학교 수학에서 배우게 된다.

미적분에서 가장 중요한 정리인 “미적분학의 기본 정리”만 소개하고 글을 마치도록 하겠다.

정리 : 어떤 함수가 적분 가능하면, 그 함수를 적분한 것을 다시 미분하면 원래의 함수와 같다. 반대로, 어떤 함수가 미분 가능하면 그 함수를 미분한 것을 다시 적분하면 원래의 함수와 상수 차이를 제외하면 같다.

증명은 생략.

미분하기 – 기울이기?

뭐…사실 미분이라는건 계산만 놓고 따지면, 숫자랑 영어를 조금 읽을 줄 안다면 누구라도 쉽게 계산할 수 있다. y=ax의 기울기가 a인 이유는 y를 x로 나누면 a이기 때문이다.

“기울기”라는 것의 정확한 의미는 뭘까?

질문에 대한 답은 알아서들 하시라. 내가 이 글에서 밝힐 것은 대단히 추상적인 이야기가 될 테니, 각자 이해한대로 기울기의 뜻을 알면 될 것이다.

다른 얘기는 다 빼고, x가 y하고 관련이 있다고 하자. 수학을 할 때는 항상 뭔가 가정을 하고서 시작하는데, 지금 이 말이 바로 그 가정이다. x는 y하고 관련이 있다고 한다. 그럼 어떤 관련일까? 궁금하지? 여기서 수학을 하는 태도는, “뭐야, 모르는게 당연하잖아!”라는 것이다. 다 알면 뭐하러 미적분을 공부하냐…

잘 모르지만, 아무튼 x랑 y가 관련이 있다고 했으니까, 가장 먼저 궁금하게 여겨야 할 것은 x랑 y가 대체 무엇이냐는 것이다. 내가 당연히 숫자에 관해 얘기하고 있다고 생각하면 곤란하다. 내가 얘기한건 x랑 y이지 그게 뭔지는 아직 말을 안했다. 그럼 뭐냐니깐…?

사실 아무거나 들어가도 상관없다. 다만, x는 한두개가 있는게 아니라 여러개가 있고, 그중 두개를 고르면 둘 사이의 거리를 잴 수 있는 것들을 많이 모아둔 것이다. y도 마찬가지다. “거리를 잰다”는 말의 심오하고 깊은 뜻은 일단 넘어가자. (미적분학에서 제일 어려운 부분이 거리를 재는 거다) 잘 모르면 그냥 자로 잰다고 치자.

아무튼, x를 두개 골라보자. 그걸 a랑 b라고 부를 수 있겠다. a랑 b사이의 거리를 d(a,b)라는 숫자로 나타내 보자. 이제 별 이유 없이 d라고 하면 그냥 방금 나왔던 두 점 a,b의 거리를 말하는 거라고 보면 된다. d(a,b)는 그냥 우리가 아는 평범한 숫자를 나타낸다. 물론 거리를 표시하고 있으므로 0이거나 양수만 된다. d(a,b)가 작아진다는 뜻은 a랑 b가 가까워진다는 말이다,

x가 y하고 관련이 있다고 했으니까 x대신에 a랑 관련이 있는 y는 b랑 관련이 있는 y하고는 다를 것이다. 같아도 상관 없다. 각각을 y(a)랑 y(b)라고 써 보도록 하자. 저 기호의 뜻은 y중에서 a랑 관련이 있는 것(딱 1개)과 y중에서 b랑 관련이 있는 것(딱 1개)을 나타낸다.

지난번 글에서 나는 함수의 연속성에 대해서 얘기를 했었다. 여기서도 마찬가지 얘기를 할 수 있는데, d[a,b]가 작아질 때 d[y(a),y(b)]도 작아질까? 글쎄…안그럴수도 있겠지?

지난번 얘기를 한번 더 반복하자면, d[a,b]가 작아질 때 d[y(a),y(b)]도 작아지는 관련성이 “y(x)가 연속이다”는 말의 정의이다.

내가 여기서 관련이 있다는 말을 써서 혼동될 수도 있는데, 관련되어 있다는 말이 헷갈리면 그냥 함수라고 써도 상관 없다. 사실은 함수가 아니라 다른 어떤 이름을 붙여도 상관 없지만, 그럼 아마 본인도 헷갈릴 것이므로 그다지 권하는 바는 아니다.

y(x)가 연속인 관련성이라고 하자. 그럼 a와 b가 가까워질 때 y(a)와 y(b)는 얼마나 빨리 가까워질까? 아마 a와 b사이의 거리가 확 줄어들면 y(a)랑 y(b)사이의 거리도 확 줄어들 것 같다. 하지만 우리가 다른 관련성 z라는걸 찾았을 때 z(a)랑 z(b)사이의 거리도 확 줄어들으라는 보장은 없다. 그럼 어떻게 해야 할까? 이런 경우 우리가 할 수 있는 것 중에 가장 간단한 건 “비교”가 될 것이다.

d[y(a),y(b)]와 d[z(a),z(b)]를 비교하면 된다. 비교하는 방법은 두가지를 고를 수 있는데, 한가지는 둘을 빼 보는 거고 다른 하나는 나눠보는 것이다. 그러므로, 나누자.

는 이제 둘 사이에 어떤 것이 더 빨리 줄어드는지를 알려주는 숫자가 된다. 이 숫자가 1보다 크면 y가 더 빨리 줄어들 것이고 그 반대면 반대겠지.

이제, z(x)라는 관련성을 너무 쉬운 관련성으로 주는데, 그냥 x에 x가 다시 나오는 관련성이다. 즉, 모든 x에 대해서 z(x)=x인 관련성이다. 이런 관계는 당연히 연속이다. (직접 증명해 보시라!)

이제 둘중 어떤 것이 더 빨리 줄어드는지 나타내는 숫자는

이라고 쓸 수 있다. 바로 이것이 “기울기”의 의미가 된다.

그런데, a랑 b가 매우 가까이 있다면? 예를들어, a를 고정시켜놓고서 b를 여러가지로 바꿔보는데, b가 a에 가까이 갈 수록 d[y(a),y(b)]도 작아질 것이다. (연속이랬으니까) 그렇다면 y’도 작아질까? 진짜?

대답은 No – 작아진다는 보장은 없다. (물론 작아질 수도 있다)

y’는 b가 a에 가까이 갈수록 어떤 값으로 수렴할 수도 있고, 0으로 나눈 숫자가 되어서 이상한 일이 일어날 수도 있다. 이때,

만약 b가 a에 가까이 갈 수록 y’이 어떤 숫자로 수렴한다면, 우리는 y(x)를 a에서 미분 가능하다

라고 말한다. 드디어 미분을 정의했다.

그리고 y’가 수렴하는 바로 그 값을 y(x)의 a에서의 미분계수 라고 부른다.

더군다나, 미분계수 자체가 또한 x에서 다른 어떤 숫자로 가는 함수라고 생각할 수 있는데, 이런식으로 만들어진 함수를 “y의 x에 관한 도함수derivative”라고 부른다.

이런 미분은 한번만 할 수 있는게 아니라, 위에서 얘기한 기울기가 수렴하기만 한다면 몇번이든 더 할 수 있다.

사실 우리가 알고 있는 수많은 함수들은 무한히 많이 마음껏 미분할 수 있다. 물론 미분할 수 없는 함수들이 “훨씬” 더 많이 있긴 하지만…

행복은 죄의 향기

しあわせは つみの におい (행복은 죄의 향기)
from OST of Neon Genesis Evangelion
노래: 타카하시 요코

What is the dream.
We have a dream now.
What is the dream.
We make the dreams come true.
꿈이란 무엇인가요?
우리에겐 지금 꿈이 있어요.
꿈이란 무엇인가요?
우린 지금 꿈을 실현시키고 있어요.

まっていれば ゆめは かなうはずと
ただ しんじてた おさない ひ
기다리고 있으면 꿈은 실현될거라고
마냥 믿고있었던 어린 시절.
whan I was young, I just believe that dream shall come true

そらを ながれる ひかりに ねがいを かけ
ほほえみながら いまを つむいでいた
하늘을 흘러가는 빛에 소원을 빌고
미소지으며 지금을 만들고 있었지요.
having wished on a shooting star and smiled, I weaved present.

まっていても ゆめは かなわないと
そう しったのは いっのころ
기다려봐도 꿈은 이뤄지지 않는다고,
그걸 알게된것은 언제쯤이었을까요.
When did I know dream couldn’t come true even wating

やさしい ひとは かなしみ ばかり せおい
おもいでと いう やみに うもれてゆく
상냥한 사람은 슬픔을 짊어진채
추억이라는 어둠속으로 파묻혀가요.
tender one is charged sorrow. He fades away into the dark, the memory

こぼれる つみの におい
넘치는 죄의 향기
overflowing the fragrance of sin

どうして なにも きずつけずに
あいを まもれないの
어째서, 아무도 상처입히지 않고
사랑을 지킬수 없나요?
Why can’t one held his love without hurting someone?

あふれる うその かけら
넘치는 거짓의 파편들
overflown pieces of lies

このてに だいた しあわせには
だれかの なみだ しみてる
이 손에 쥐고있는 행복엔
누군가의 눈물이 베어있어요.
Happiness in my hands is drenched with somone’s tears

けがれのない こころだけを もって
この せかいへと おりたのに
순수한 마음만을 가지고
이 세상에 태어났음에도
Even though we were born only with pure hearts

とった ときから うしなう ことに おびえ
무언가를 얻은 순간부터, 잃어버릴 것이 두려워
After getting something, afraid of losing it

やすらぎさえも いつか てきに まわす
평안함조차도 언젠가는 적으로 돌리고 말지요.
we shall even have tranquility become an enemy

にじんだ つみの におい
베여나는 죄의 향기
stinking of the fragrance of sin

どうして なにも ほしがらずに
いきては ゆけないの
어째서, 아무것도 바라지 않고
살아갈수는 없나요.
Why can’t one live with wanting nothing

ゆがんだ うその かけら
비뚤어진 거짓의 조각들.
distorted pieces of lie

まぶしい あすを おもいながら
ねむれぬ よるを かぞえる
눈부신 내일을 생각하며,
잠들지 못했던 밤을 헤아려요.
Counting nights sleepless with imagine bright tomorrow

こぼれる つみの におい
넘치는 죄의 향기
overflowing the fragrance of sin

どうして なにも きずつけずに
あいを まもれないの
어째서, 누구도 상처입히지 않고서는
사랑을 지킬수 없나요?
Why can’t love be held without hurting someone?

あふれる うその かけら
넘치는 거짓의 조각들
overflown pieces of lies

このてに だいた しあわせには
だれかの なみだ しみてる
이 손에 쥐고있는 행복엔
누군가의 눈물이 베어있어요.
Happiness in my hands is drenched with somone’s tears

What is the dream.
We have a dream now.
What is the dream.
We make the dreams come true.
꿈이란 무엇인가요?
우리에겐 지금 꿈이 있어요.
꿈이란 무엇인가요?
우린 지금 꿈을 실현시키고 있어요.

수렴성에 관한 쫌 쉬운 이해

어떤 대상을 관찰하는 방법은 멀리서 보는 것과 가까이서 보는 것, 그리고 그 중간의 어딘가에서 보는 방법이 있다.

수학적인 대상을 관찰할 때에도 마찬가지 방법이 적용되는데, 그중에서 아주 가까이 다가가서 보는 것이 미적분학이 된다. 그리고 그 논리의 핵심에는 “수렴성”이라는 아주 중요한 특성이 생긴다.

수열은 아주 기본적인 건데, 수열이 가진 특성은 “움직인다”는 것이다. 몇번째 항 까지 추적해 나가다 보면 수열이 이리저리 움직이고 있다는 것이 느껴질 것이다. 그런데, 수렴하는 수열을 추적하다보면 대충 몇번째 항 이후부터는 추적할 필요가 없다. 왜냐고? 어디에 있는지 뻔히 다 알기 때문이다. 수렴성이 중요한 이유는 무한히 많은 수열의 항들을 전부 조사할 필요 없이, “적어도 여기 근처에 있다”고 말할 수 있는 근거를 제시해 주기 때문이다.

그럼 이제 이걸 어떻게 써먹을까? 수열을 한단계 확장한 것이 함수이다. 수열은 자연수n을 하나 말하면 n번째 항에 대한 숫자가 하나 있는 것이었다. 함수는 실수x를 하나 말하면 그것에 해당하는 숫자가 하나 있는 것을 말한다. 문제는, 자연수는 띄엄띄엄 떨어져 있기 때문에 적당히 구간을 작게 잡으면 그 안에 자연수가 단 1개만 있도록 할 수 있지만 실수는 그게 불가능하다는 점이다. 아무리 작은 구간을 잡더라도 실수는 무한히 많이 들어있다. 이런 문제점을 해결하기 위해서 수학자들이 생각해낸 방법은 “에라, 모르겠다!” 라는 거다. 우리가 실수에 대해서는 띄엄띄엄 떨어져 있다는 걸 생각할 수 없지만, 그렇다면 그중에 아무거나 적당히 고르자는 거다. 무한히 많은 실수 중에서 적당히 띄엄띄엄 떨어져 있도록 골라서 수열에서 했던 것처럼 얘기를 하면 되잖아? 사실 우리가 아는게 그거밖에 없으니까 그정도라도 할 수 있다면 다행일 것이다.

그런데, 그게 정말 맞는지 어떻게 알까?

가령, 어떤 함수를 분석하는데, 내가 잡은 수열이랑 너가 잡은 수열이 다를 수도 있을 거고, 여러번 수열을 다르게 잡을 수도 있을 것이다. 그럼 그때마다 결과가 다를텐데, 뭐가 맞는거지?

이 문제를 해결하기 위해서 수학자들은 다시 “아무거나 골라도 상관 없다”는 정리를 증명하게 된다.

예를들어, 이런 것이다.

f(x)를 실수에 대해 잘 정의된 함수라고 하자. 즉, 실수 x를 아무거나 고르더라도 그에 해당하는 숫자 f(x)를 말해줄 수 있다는 뜻이다. 우리는 실수 x를 아무거나 고를 수 있기 때문에 적당한 수열 {X}를 만들 수 있다. 이제 질문은 다음과 같다. {X}가 a로 수렴한다고 하면, f(x)는 f(a)로 수렴할까?

좀 더 쉽게 말을 바꾸면 {X}는 x를 무한히 많이 골라내서 적당히 만든 수열이다. 그런데 이 수열은 n번째 항 이후로는 x의 근처에 전부 다 몰려 있다. {X}에 있는 항을 하나씩 대입하면 f(x)에 해당하는 숫자들도 수열이 될 것이다. 과연 n번째 항 이후로는 f(x)들이 모두 f(a)의 근처에 전부 몰려 있을까?

답은 “글쎄요”

함수는 무진장 많이 있고, 위에서 말한 성질이 성립하는 것도 있고 성립하지 않는 것도 있다. 그럼 이제 어떻게 할까?

이런 경우 수학자들이 흔히 쓰는 방법은 “정의”이다.

x가 a로 접근할 때 f(x)가 f(a)로 접근하는, 그런 종류의 함수를 “연속함수”라고 정의한다.

이것이 바로 연속성의 정의가 된다.

물론, 그림으로 그렸을 때 매끈하게 이어져 있는 함수들은 모두 연속함수이다. 연속함수의 종류는 무한히 많이 있다. 다만, 연속이 아닌 함수들(불연속 함수)이 훨씬 더 많이 있을 뿐이다. 당연히 연속함수가 얘기하기가 더 쉽기 때문에 우린 항상 연속함수만 갖고 얘기를 진행할 것이다. 고등학교를 졸업할 때 까지 만나는 함수중에서는 1/x을 제외하고는 대부분이 연속함수일 것이다.

덧셈과 곱셈

사칙연산에 대해서 말을 하자면, 가장 기본적으로 덧셈을 잘 정의해야 합니다.

사칙연산은 모두 이항연산(Binery Operation)이라고 부르는 계산법에 들어가는데, 이항연산은 집합에서 원소 두개를 골라서 그 집합의 원소 하나를 대응시키는 규칙을 말합니다.

+(a,b)=c

라는 형식으로 덧셈을 정의하게 되는데, 이것을 간단하게 쓰기 위해서 a+b=c라고 적습니다.

“덧셈이 어떤 집합 A에서 잘 정의되었다”는 말은 집합 A에서 아무 원소 두개를 골라서 덧셈을 했을 때 항상 다시 A로 그 결과가 들어가는 경우에 사용합니다.

만약 어떤 원소 e가 있어서 집합의 아무 원소 a에 대해서 +(a,e)=+(e,a)=a를 만족한다면 e를 항등원(Identity)이라고 부릅니다. 특별히, 덧셈에 관한 항등원의 이름을 “영,0,zero”이라고 부릅니다.

줄여서 적으면 a+e=e+a=a인 e를 0이라고 부릅니다.

또한, 특정 a에 대해 어떤 원소 n이 있어서 +(a,n)=+(n+a)=e가 나오는 경우가 있는데, 이런 경우 n을 a의 덧셈에 관한 역원이라고 부르고, -a라고 적습니다.

곱셈도 똑같은 방법으로 정의하는데,

x(a,b)=c라고 정의합니다. 그리고 곱셈에 관한 항등원을 1이라고 부릅니다. a에 대한 곱셈의 역원은 1/a라고 적습니다.

아무튼, 이항연산 하나가 잘 정해져 있고, 결합법칙이 성립하면서, 항등원과 모든 원소에 역원이 존재하면 그런 집합을 군Group이라고 부릅니다.

여기서 중요한건 교환법칙이 성립할 필요는 없다는 겁니다. 교환법칙도 성립하는 군은 가환군, 또는 아벨 군이라고 부릅니다.

교환법칙은 a+b=b+a가 모든 a, b에 대해서 성립할 때 교환법칙이 성립한다고 말합니다.

우리가 잘 알고 있는 “숫자”라고 부르는 것들은 모두 교환법칙이 잘 성립하는 가환군을 이루고 있고, 덧셈과 곱셈 역시 우리가 알고 있는 그대로 잘 정의됩니다. 물론 숫자 0과 숫자 1은 각각 덧셈과 곱셈에 대한 항등원입니다.

하지만 숫자가 아닌 여러가지 대상들도 군을 이룰 수 있는데, 숫자 말고도 이런 것들이 많이 있다는 점을 알아두면 됩니다. 그리고 그런 대상중에서는 교환법칙이 성립하지 않는 것이 훨씬 더 많이 있습니다.

결합법칙은 이항연산을 처리하는 순서를 바꿀 수 있다는 법칙인데, 굳이 쓰자면 다음과 같습니다

+(a,+(b,c))=+(+a,b),c) 이고, 이것을 간단하게 쓰면 a+(b+c)=(a+b)+c라고 씁니다.

물론 우리가 아는 대부분의 이항연산들과 대부분의 집합은 결합법칙을 잘 만족합니다.

분배법칙은 이항연산이 두개 이상 정의된 경우에 이항연산의 순서를 바꿀 수 있다는 법칙입니다. 하지만 보통의 군은 이항연산이 1개만 정의되어도 되기 때문에 이항연산이 두개가 잘 정의된 집합을 생각해야 합니다. 그래서 덧셈과 곱셈을 한꺼번에 생각하는 경우가 있는데, 이러한 집합을 환Ring이라고 부릅니다.

정확히는, 어떤 집합이 환이 되기 위해서는 덧셈에 대해서는 가환군이고 곱셈이 잘 정의되어야 하고, 분배법칙이 잘 성립해야만 합니다. 한가지 특징은, 곱셈에 대해서 역원이 존재할 픽요가 없고 곱셈에 대해서는 교환법칙이 성립하지 않더라도 상관 없습니다.

분배법칙은 덧셈+과 곱셈*에 대해서 다음과 같이 쓸 수 있습니다

*(a,+(b,c))=+(*(a,b),*(a,c))이고 간단하게 쓰면 a*(b+c)=(a*b)+(a*c)라고 씁니다.

만약 곱셈에 대해서 교환법칙이 성립하고 덧셈의 항등원을 제외한 모든 원소에 대해서 곱셈에 대한 역원이 존재한다면 이런 집합을 체FIeld라고 부릅니다.

유리수, 실수, 복소수 등은 모두 체를 이루고 있습니다.

사칙연산중에서 두가지를 정의했는데, 뺄셈은 어떤 수의 덧셈에 관한 역원을 더하는 것으로 생각할 수 있고, 나눗셈은 어떤 수의 곱셈에 관한 역원을 곱하는 것으로 생각할 수 있기 때문에 잘 정의됩니다. 단, 덧셈에 대한 항등원은 곱셈에 관한 역원이 없기 때문에 0으로 나누는 일은 하지 않습니다.

이러한 성질들을 이용하면 숫자들이 갖고 있는 여러가지 특성을 잘 이해할 수 있게 됩니다.

수학 문제를 빠르게 푸는 방법

내가 고2때 다니던 단과 학원에서 강의를 잘하기로 유명한 수학 선생님이 있었다.

그 선생님은 항상 수학 문제를 빨리 푸는 방법을 가르쳐 주었다.

“수학 문제를 빨리 풀려면 어떻게 하면 되는지 알아요?”

라고 하면서

수학 문제를 칠판에 적고

막…

풀었다. 빠르게.

“수학 문제는 이렇게 빨리 풀면 빨리 풀려요”

다들 좌절한다.

왜?

뭔가 특별한 비법이 있을 거라고 기대했거든.

하지만 그게 사실이다. 옛날에 누군가 그랬다. 수학에는 왕도가 없다고. 아마 유클리드가 한 말일것이다. 아 물론, 수학에는 왕도가 없지만 정석은 있다.

내 개그를 이해해 주기 바란다.

아무튼, 수학 문제를 빠르게 푸는 방법은 별로 없다. 오직 끊임없는 연습만이 있을 뿐이다. 내가 대학교에서 수학을 전공하면서 느낀 건 “논리적으로 생각하는 것”에 익숙해지는 것이다.

고등학교 때 까지의 수학은 사실 증명이 거의 없이 단순한 산수에 가깝다. 왜 그렇게 되는지 이유를 따질 필요가 없이 그냥 풀면 된다. 당연히 응용문제가 나오면 고민만 하다가 답을 찍고 다음 문제로 넘어가게 된다. 왜 그럴까? 연습의 대상이 틀렸기 때문이다. 수학에서 연습해야 하는건 문제를 푸는 것이 아니다. “모든 가능성을 따져서, 단 하나의 거짓도 없음이 분명한지” 생각하는 것이다.

재미있는건, 학원이나 학교 수학 선생님들이 “비법”이라고 말하면서 수학 문제를 풀 때, “보기”를 하나씩 문제에 대입해보면 정답이 나온다는 걸 가르쳐준다. 그건 비법이 아니다. 수학에서 중요한건 “그게 정답인게 확실해?”이지 “그거 너무 치사하지 않냐?”가 아니다.

정답이라는게 확실하기만 하면 문제를 풀기 위해서 접근하는 방법은 아무래도 좋다. 아니, 세상에 어떤 바보같은 수학자가 “5개중에 하나가 정답이 확실해요”라고 말했는데 무한히 많은 가능성 중에서 답을 찾겠는가. 물론 문제 자체가 틀렸을 가능성을 의심해 보긴 한다.

페르마의 마지막 정리를 해결한 엔드루 와일즈는 사실 페르마의 마지막 정리를 직접 증명하지 않았다. 타니야마-시무라 추측이 페르마의 마지막 정리와 동치라는 걸 알고서, 타니야마-시무라 추측을 증명한 것이다. 누가 비겁하다고 하겠는가?

수학은 그런 학문이다. 남김없이 따져서 맞기만 하면 된다. 나머지는 니 맘대로다.

재미있지 않은가? 가장 딱딱해 보이는 학문이 사실 가장 자유롭다니.

죄수의 딜레마

어느 쌍둥이 형제가 생일날이 되어 케이크에 촛불을 껐습니다. 두 형제는 너무나 똑같았기 때문에 서로 케이크를 양보할 생각이 없으며, 두 사람에게 공평하게 케이크가 나누어져야 서로 싸우지 않고 케이크를 먹게 됩니다. 어떻게 하면 가장 공평하게 케이크를 나눌 수 있을까요?

이 문제는 현대 경제학 이론에서 가장 중요한 이론중의 하나인 “게임 이론”의 가장 간단한 예입니다. 게임 이론은 어떤 전략이 최대의 이익을 가져다 줄 것인지 결정하는 방법을 이야기해 줍니다. 게임 이론이 말하고 있는 “게임”은 단순히 우리가 즐기는 오락을 말하는 것이 아닙니다. 게임 이론이 말하는 게임은 참가자가 상대방의 전략을 모른 채 자신의 전략을 선택해야 하고, 승부가 확실하게 결정되는 규칙이 있는 경기를 뜻합니다.

실제로, 게임 이론은 생명체의 생존경쟁에서 협동이 나타나는 이유를 설명해 줄 수 있습니다. 예를들어 둘 다 협동하면 둘 다 먹이를 구할 수 있고, 둘 다 배신하면 둘 다 굶으며, 어느 한쪽이 배신을 하면 한쪽이 먹이를 독차지하는 상황이 되었다고 생각해 봅시다. 이런 경우 최선의 전략은 둘 다 협동하는 겁니다. 하지만 이렇게 생각하는 것은 우리가 관찰자로서 상황을 객관적으로 바라보기 때문에 가능한 일이지 실제로는 그렇지 않습니다.

내가 협동하는 전략을 선택했는데 상대방이 배신을 한다면 나는 열심히 먹이를 구하기 위해 노력했지만 얻은 것이 없으므로 큰 손해를 입게 됩니다. 하지만 상대방이 협동하고 내가 배신하면 난 이익을 얻게 됩니다. 그러므로 난 배신을 하는 쪽이 더 유리하겠죠. 마찬가지 생각으로 상대편도 배신합니다. 그러므로 결과는 둘 다 배신하는 쪽이 나오게 됩니다.

만약 이런 게임을 여러번 반복한다고 생각해 봅시다. 이런 경우에 최선의 전략은 어떤 것일까요? 게임 이론을 연구하는 학자들에 의하면 “받은만큼 돌려주기” 전략이 가장 유리하다고 합니다. 이 전략은 간단히 말하자면 상대방이 바로 전에 선택한 전략을 똑같이 선택하는 전략입니다. 만일 모두가 이 전략을 선택하고 첫번째 선택을 협동하기로 한다면 끝까지 협동을 할 겁니다. 또한 받은만큼 돌려주기 전략은 무작위로 선택하는 전략, 무조건 협동하는 전략 등에 대해서도 더 유리한 전략이라고 합니다. 그리고 이러한 전략은 실제 동물들의 행동에서 나타납니다. 여러 동물들의 협동은 이러한 이론적 기초를 바탕으로 설명할 수 있습니다.

이제, 위의 케이크 문제의 답을 이야기해 보도록 하겠습니다. 가장 공평하기 위해서는 양쪽 모두 공평하다는 점에 동의해야 합니다. 형이 케이크를 반으로 나누고 동생이 그중에 자신이 원하는 것을 고른다고 해 봅시다. 형은 동생이 자신에게 양보하지 않을 것이라는 점을 알기 때문에, 만약 어느 한쪽을 더 크게 자른다면 자신에게는 작은 조각이 돌아오리라는 사실을 알 수 있습니다. 그러므로 가능한 똑같게 자르겠죠. 동생 역시 자신이 좀 더 커보이는 조각을 고를 것이므로 불공평하다고 따질 이유가 없습니다. 그러므로 쌍둥이 모두 만족하는 답이 됩니다.

형제가 3명이 넘어간다면 어떻게 하면 될까요?

이 경우에는 어느 한명이 칼을 잡고 조각이 차츰 커지는 쪽으로 칼을 끝에서부터 이동합니다. 그러다가 누군가 “그만!”이라고 외치면 그 자리에서 케이크를 자르고 외친 사람에게 방금 자른 케이크 조각을 줍니다. 만일 더 커다란 조각을 먹기 위해 더 기다리다가 어느 순간 다른 사람이 외쳐버리게 되면 자신이 확보한 조각은 사라지게 됩니다. 그렇게 되는 걸 막으려면 다른 사람보다 먼저 외쳐야 하는데, 그럼 작은 조각을 먹을 수 밖에 없습니다. 결국 자신이 외쳤을 때 먹게 되는 것이므로 불평할 수가 없습니다. 다른 사람들 역시 더 커다란 조각을 얻기 위해서 기다리고 있다가 누군가가 외쳐서 조각을 빼앗긴 것이므로 불평할 수가 없습니다. 그리고 2명이 남게 되면 앞서 설명한 방법으로 나누면 됩니다.

여러분들은 어떤 일을 할 때 협동하는 편인가요? 아니면 배신하는 편인가요? 어느 쪽이 더 나은 선택이라고 강요할 수는 없지만, 대체적으로 협동하는 쪽이 서로에게 더 이익을 주게 됩니다.

cranky – Holy winter


cranky의 Holy winter라는 곡을 소개해 보려 한다. cranky는 일본인 뮤지션인데, 사실 누군지는 잘 모르고 BM98시절부터 그의 노래가 좋아서 찾아서 듣다가, 어느새 홈페이지까지 찾아가 듣게 된 사람이다.

cranky의 홈페이지 주소는 다음과 같다 :

http://www.rave-slave.com

뭐…사실 개인적으로 대단히 좋아하는 곡이므로 별다른 평은 없다. 각자 듣고 각자 평가해 주기 바란다.