Genie 일본어 버전

소녀시대 “Genie”의 일본어 버전. (“Genie”가 제목인지 “소원을 말해봐”가 제목인지는 잘 모르겠다. -_-;)

감상평 : 웬만한 일본 가수들보다 영어 발음이 더 좋다. 그리고 대충 알아듣고 있는 스스로에게 놀랐음. 역시 노래 가사에 쓰이는 단어는 한정되어 있는 것 같다.

엔트로피의 이해 2

로또가 생각이 났다.

엔트로피는 다음과 같이 정의된다

-엔트로피 = $\sum$확률(x) log(확률(x))

-기호도 붙어있고 볼츠만 상수도 원래는 있지만 상수 정도는 대충 넘어가자.

여기서, 로그가 빠지면 그냥 확률의 덧셈이므로 1이 된다. 로그가 왜 붙어있는가는 좀 나중에 생각을 해 보고, 엔트로피가 위와 같이 정의된다 치고 로또 복권의 엔트로피를 생각해 보자.



근데, 어려우니까 로또 대신, 일단 동전 던지기의 엔트로피를 생각해 보자.

확률(앞) = 0.5

확률(뒤) = 0.5

-엔트로피 = 0.5(log(0.5))+0.5(log(0.5)) = log(0.5)

따라서 엔트로피 = log2

참 쉽죠?

만약 log의 밑이 2라면 엔트로피 = 1

(볼츠만 상수의 역할이 바로 이것이다. 통계적 현상과 실제 자연 현상 사이의 어떤 관계가 성립할 때, 그 관계를 수치적으로 잘 맞도록 해 주는 역할, 즉 로그의 밑 같은 ?沽?해당한다.)

이번엔 주사위 던지기의 엔트로피를 생각해 보자.

확률(n) = 1/6 for any integer n between 1 and 6.

-엔트로피 = 1/6(log(1/6)) + 1/6(log(1/6)) + 1/6(log(1/6)) + 1/6(log(1/6)) + 1/6(log(1/6)) + 1/6(log(1/6)) = log(1/6)

따라서 엔트로피 = log 6

이것도 만약 log의 밑이 6이라면 엔트로피 = 1

모두 다 같은 확률을 가지는 경우에는, 이처럼 엔트로피가 단순하게 계산된다.

이제, 실전에 들어가 보자. 로또 당첨의 각 등수별 확률은 다음과 같다.

확률(1등) = 1/8145060

확률(2등) = 1/1357510

확률(3등) = 1/35724

확률(4등) = 1/733

확률(5등) = 1/45

내가 직접 계산한 값은 아니라서 이게 진짜 그렇게 되는지는 모르겠지만, 검증하기는 귀찮으므로 일단 믿고 넘어가자. 일단 이 값을 다 더하면 0.0236153305 이다. 대략 2.4%만 당첨된다는 뜻이다. -_-; (5등조차도.)

물론, 당연히 다음과 같다.

확률(꽝) = 1 – 확률(당첨)

– 엔트로피 = 1/8145060 log(1/8145060) + 1/1357510 log(1/1357510) + 1/35724 log(1/35724) + 1/733 log(1/733) + 1/45 log(1/45) + (1-확률(당첨)) log(1-확률(당첨)) = -0.117232782169297292634886427813927570789488305228976152956

이 계산은 구글에서 검색할 수 없어서 정답 검색으로 유명한 울프램 알파를 써 봤다.

엔트로피 = 0.118

이게 무슨 의미인가...
위에서 동전 던지기의 엔트로피를 실제로 계산하면 log(2) = 0.69정도 되고,
주사위 던지기의 엔트로피를 계산하면 log(6) = 1.79정도 된다.
로또 복권의 엔트로피는 이런 것들보다 훨씬 낮은 편이다.

이제 이걸 실제 확률 과정에서 한번 살펴보자.
만약 동전을 1000번 던져서 300번이 앞, 700번이 뒤가 나왔다고 하자. 이 경우의 엔트로피는
- 엔트로피 = 0.3 log(0.3) + 0.7 log(0.7) = -0.610864
엔트로피 = 0.61이다. 즉, 동전던지기에서 각각 500번씩 나오는 경우보다 엔트로피가 작다.
실제 로또 복권의 당첨 확률을 이용하여 엔트로피를 계산하면,
아마 위에서 계산한 로또 복권의 이상적인 경우에 대한 ž‚ㄴ트로피보다 더 작게 나올 것이다.
실제로 계산해 보고 싶긴 한데 총 몇개가 팔렸는지에 대한 자료를 알기가 어렵다. 회차별 자료는 있는데,
이걸 다 더하려니 막막하다. -_-;


바로 그게 민주주의


http://news.chosun.com/site/data/html_dir/2010/09/11/2010091100077.html

조선일보에서 서울시 시의원을 민주당이 장악해서 오세훈 시장이 일을 제대로 못하고 있다는 보도를 했다. 뭐 아무것도 하지 말라는 거냐 – 이런 식의 보도이다.

하지만 잘 생각해 보면, 서울시 시의원을 민주당이 장악한건 서울 시민이 투표로 뽑아주었기 때문이니까 이런 현상은 당연한 일이다. 즉, 서울시민들은 오세훈을 시장으로 뽑아 주었지만 또한 민주당을 다수당으로 선택했다는 것이다.

오세훈 시장이 일을 천천히 해야 하고, 민주당 사람들이랑 의견을 맞춰 가면서 타협 해 가면서 일을 하는 건 바로 시민들이 바란 결과이다. 오세훈 시장 맘대로 일을 할 수 있는 것도 아니고, 그렇다고 모든 것이 민주당 시의원 사람들 맘대로 처리되지도 않는다.

민주주의 사회에서 일어날 수 있는 지극히 평범한 사건의 지극히 당연한 결과를 마치 그런 일은 일어나서는 안되는 것 처럼 해석하고 있다. 하지만 바로 그것이 민주주의이다. (적어도, 그것이 바로 대의 민주주의이다.)

윈도우즈 탐색기의 묘한 버그

탐색기를 열고

화살표키를 이용해서 탐색하다보면

이상하다.

엔터 쳐서 들어가면

아무것도 선택이 안 되어 있다.

그래서 화살표키를 아래로 내리면 목록에서 두번째 것이 선택된다

첫번째 것으로 바로 들어갈 수가 없다. 두번째 것으로 간 다음 다시 위로 올라가야 한다.

아…귀찮아라…

인간이 컴퓨터처럼 생각한다는 증거


http://science.slashdot.org/story/10/09/07/2146205/They-Finally-Found-Out-We-Like-Our-Computers


클리포드 나스라는 학자가 인간이 컴퓨터처럼 생각한다는 증거를 발견했다는 소식이 슬래시닷에 올라왔다.

이에 대한 댓글중…

I propose forcing women to think like computers instead of like women. They would be much easier to interact with.

난 여자들이 여자들처럼 생각하기보다 컴퓨터처럼 생각하도록 만들어야 한다고 봐. 훨씬 말이 잘 통하잖아.

여기에 대한 댓글로

Windows sux… Just install Linux.





🙂

윈도우즈는 안돼…리눅스를 설치해

그리고 그 밑에


>sudo fsck me

(이건 고차원 하이개그이자 저질 유머라 번역 안함. -_-; 아는 사람만 알아서 볼 것.)

쌍대

수학은 어쩌면 대칭성에 관한 학문일 수도 있는데, 수학을 공부하다보면 여러가지 흥미로운 대상을 찾을 수 있다. 그중 이해하기 가장 쉬운 대상은 점과 직선이다. 점과 직선에 대해서 다루는 수학의 분야가 바로 기하학이다. 기하학에서는 아무튼 점과 직선이 어떻게 만나고 헤어지는지 얘기해준다. 그래봐야 “점이 있다” “점 두개사이에 직선을 그을 수 있다” 등등의 이야기로 시작하겠지만. 어쨌든, 이런 점과 직선의 공간은 보통 숫자를 이용해서 표시한다. 하지만 숫자로 표현할 수 있는 점에는 한계가 있는데, 무한대가 숫자가 아니라는 것이다. 그래서, 그런 점과 그런 직선을 다루는 기하학이 있다.

보통의 기하학적 공간 + “여기서부터 무한히 먼 곳에 존재하는 점”과 “여기서부터 무한히 먼 곳에 존재하는 직선”이 있는 공간을 다루는 기하학이 바로 사영기하학(Projective Geometry)이다.

사영기하학 자체를 여기서 전부 설명하기엔 힘드니까 각자 교과서를 찾아보도록 하고, 몇가지 재밌는 것들만 이야기 해 보겠다. 일단 사영기하학의 “공간”에서는 유클리드 기하학에서 성립하는 모든 특징이 다 성립한다. 당연하겠다. 다 똑같고 무한히 먼 곳에 직선과 점을 추가했을 뿐이니까 당연히 성립할 것이다. 여기에 더 재밌는 것은 “쌍대성(Duality)”이 존재한다는 점이다.

쌍대성이란, A와 B라는 대상이 있을 때, 만약 A에 대해서 어떤 정리가 성립한다면 B에 대해서도 똑같이 성립한다는 것이다. 사영기하학의 쌍대성은 점과 직선 사이에 존재한다. “만약 어떤 정리(Theorem)가 점에 대해서 성립한다면, 그 정리는 직선에 대해서도 성립한다.”는 정리가 증명되어 있다. 이건 쌍대성 정리라고 하는데, 사영기하학에서 매우 중요한 정리이다. 왜냐하면, 점에 대해서 안 풀리는 문제가 있을 때 그걸 직선에 대한 문제로 바꿔서 풀어도 괜찮다는 뜻이기 때문이다. 이런 보장이 되지 않는다면, 맘대로 점과 직선을 바꾸면 안된다.

2차원 공간에서 원점 (0,0)을 지나가는 임의의 직선의 방정식을 써 보자.

Ax + By = 0

여기서, “직선”은 위의 공식으로 표현되는 대상 그 전체이다. (x, y)는 변수이며, 아무 값이 들어가더라도 저 공식만 만족시킨다면 아무 문제가 없다. 하지만 A와 B는 직선을 결정하는 수이다. A나 B가 변한다면 직선도 변한다. 특정한 A와 B에 대해서 언제나 직선이 1개 결정된다. 그 반대로도, 직선 1개를 생각하면 그 직선에 해당하는 A와 B의 쌍이 정확히 1개 존재한다. 따라서 우린 직선 대신에 A와 B를 그 직선이라고 생각해도 된다. 그런데 A와 B는 실제로는 그냥 수니까 합쳐서 (A, B)라고 써도 된다. 그리고 이렇게 써 놓고 보니 점이랑 똑같이 생겼다. 그래서 직선 Ax+By=0 대신에 점(A, B)라고 해놓고 여러가지 작업을 할 수도 있다. 그게 쌍대성이다. (여기서 쌍대성의 정리를 증명한 것은 아니다.)

여기서 쌍대성의 의미를 이해하고 넘어가자. Ax+By=0이라는 공식에서 찾을 수 있는 것은 이 공식을 만족하는 직선 (x,y)는 원점에서 점 (A, B)를 잇는 직선과 수직으로 만난다는 점이다. 만약, 반대로 (x, y)를 고정시켜놓고 (A, B)를 바꾸더라도 마찬가지 관계가 성립한다. 우린 점을 (x, y)로 정의하고 직선을 (A, B)로 정의했지만, 실제로는 점과 직선의 역할을 바꾸더라도 문제가 없음을 확인할 수 있다.

이제, 흔히 말하는 벡터 공간을 생각해 보자. 벡터 공간이란 그 안에 있는 원소들에 대한 덧셈과 길이 변환이 잘 정의된 공간이다. 점들의 공간을 벡터 공간으로 정할 수 있는데, 가령 (a, b) + (c, d) = (a+b, c+d)와 같이 덧셈을 정의하고 k(a,b) = (ka, kb)와 같이 길이 변환을 정의한다면 점들의 공간은 벡터 공간이 된다. (다르게 정의해도 조건만 만족한다면 상관 없다.)

벡터 공간에서도 벡터 공간의 쌍대 벡터 공간을 찾을 수 있다. 어떤 벡터 공간의 쌍대 벡터 공간이란 다시 벡터 공간인데, 원래의 벡터 공간과 같은 성질을 갖는 공간이다.

우선 선형 범함수(linear functional)라는 개념을 알아야 한다. 범함수(functional)란, 벡터 하나를 주면 그에 대해서 수 하나를 내놓는 함수이다. 가령 벡터 (a, b)에 대해서 f(a, b) = a+b 라고 주는 것 또한 범함수에 속한다.

그중에서 선형 범함수는 선형 관계가 성립하는 범함수이다. 즉, 범함수 f가 두 벡터 v, w에 대해서 f(v+w) = f(v)+f(w)이고 실수 k에 대해서 f(kv) = kf(v)가 성립하는, 그런 참 괜찮게 생긴 애들이다.

그런데 범함수들 역시 벡터 공간이 된다. 가령, 두개의 범함수 f, g가 있다고 하면 (f+g)(v) = f(v) + g(v)라고 쓸 수 있고, (kf)(v) = k(f(v))가 되므로 덧셈과 길이 변환이 잘 정의된다.

어떤 벡터 공간에 대해서, 그 벡터 공간에 주어진 선형 범함수들의 공간은 그 벡터 공간의 쌍대 벡터 공간이 된다. 일단 선형 범함수들의 공간이 벡터 공간이 된다는 사실은 쉽게 알았는데, “쌍대성”은 어떻게 생각해야 할까?

간단히, 쌍대 벡터 공간이라고 해 놓고서 그 쌍대 벡터 공간의 쌍대 벡터 공간이 원래의 벡터 공간이 된다는 것을 알아보자. 뭐, 간단하다. f라는 범함수 대해서 v라는 함수는 v(f) == f(v)로 정의하면 된다(!)

그럼 앞에서 했던 얘기들을 그대로 다 할 수 있다. (v+w)(f) = f(v+w) = f(v) + f(w) = v(f) + w(f)라든가.

이런 쌍대성의 경우에는, 앞에서 했던 점-직선 사이의 대칭성을 그대로 적용할 수 있다. 즉, 만약 v를 점으로 생각한다면 f는 직선이 된다. (그 반대도 마찬가지.)

물리학에서도 비슷한 얘기가 나오는데, 입자-파동 이중성의 원리에 등장하는 불확정성 원리이다. 불확정성 원리에서는 쌍대 관계에 있는 값은 동시에 둘 다 정확히 측정할 수 없다고 한다. 운동량과 위치는 쌍대 관계이기 때문에 둘 다 동시에 정확히 측정할 수 없다. 잘 생각해보면, “위치”는 점에 해당하고 “운동량”은 직선에 해당한다는 것을 알 수 있다. (물론, 그 반대로 생각해도 된다. 운동량이 점이고 위치가 직선이라도 별 문제는 없다. 왜냐면? 쌍대니까.)

———–

추가

Kwak and Hong 책을 보니까 쌍대 공간은 선형 변환의 Transpose의 일반화된 형태라고 설명하고 있다.

더 자세한 내용은 댓글로…

빈칸 처리하기

VB2005에서 개발하다보면 황당한 상황들이 자주 발생한다. 이건 언어의 정의와 운영체제의 문제가 결합되서 만들어진 건데…

내가 하고싶은건 cmd.exe를 실행시켜서 그 뒤에 명령을 붙이는 것이다.

명령의 형태는

strCmd = My.Application.Info.DirectoryPath & “\gnuplot\binary\gnuplot.exe”

문자열로 주어져 있는 이 명령을 실행시키면 된다. 그래서 실행시켜봤더니 안된다.

왜 안되는가 살펴봤더니 My.Application.Info.DirectoryPath에서 반환하는 이름에 공백이 들어가 있다. 그리고 cmd.exe는 공백은 모두 매개변수의 구분자로 생각하기 때문에 없는 명령이라면서 실행되지 않는다.

해법1. 실행시키고 싶은 명령어가 있는 디렉토리의 경로에서 빈칸이 없도록 잘 조정한다.

그런데 이렇게 하면 임의의 디렉토리에 있는 것을 실행시킬 수 없다. 따라서 앞으로 Program Files에 들어갈 이 프로그램의 작동이 보증이 안된다. 왜 MS에서는 Program과 Files 사이에 빈칸을 넣은 걸까? 개발자 삽질하라고? -_-;

해법1을 기각하고 해법2를 찾는 중이다.

해법2. 그래서 경로명의 앞/뒤에 강제로 “를 넣도록 해 봤다. 경로명 전체가 “로 둘러싸여서 안된다. 가령

D:\Visual studio 2005\binary

이런 경로명이 있다고 할 때

“D:\Visual studio 2005\binary”

이렇게 하면 뭔가 된다.

암튼 해결.

—-

그 뒷이야기

gnuplot을 그냥 실행시키기만 하면 안되고, 그 뒤에 스크립트 파일을 열도록 해야 한다. 그 스크립트 파일의 경로 또한 빈칸이 들어가 있고, 따라서 똑같은 에러가 발생한다 -_-;

그래서. 홧김에 빈칸이 절대 들어가지 않아도 되도록 상대 경로로 지정해 버렸다.

이해 되는 분만 웃으시면 됩니다. -_-;

2010 – 10 – 31

드디어 토플시험을 등록했다. 길일은 10월 31일로 정했다.

읽기 – 중급

쓰기 – 중하급

듣기 – 초보

말하기 – 초보

뭐부터 준비하지…각 과목별 10점씩 받으면 40점밖에 안되는데…ㅡㅡ;

1차 목표 – 60점/120점 이상.