이항계수를 이용하여 한국축구가 독일축구를 이길 수 있는 이유를 설명하기

지난 월드컵 F조 경기에서 한국이 독일을 2:0으로 이기는 이변이 일어났는데, 뭐 사실 개인적으로 스포츠는 잘 모르지만, 축구 팬들에게는 꽤 놀라운 결과인 듯.

어떤 사람이 이 경기 결과에 대해 이항계수를 이용하여 설명하는 영상[1]을 봤다. 재생시간 10분 5초.

비록 북경어로 설명하고 있어서 내용을 정확히 알 수 없지만, 구글 번역의 성능이 엄청 좋다!! 보면서 진짜 깜짝 놀랐음. 대충 통밥으로 알아먹을 수 있다. 오오 갓 구글!![2] ㅋㅋ

.


보기 귀찮은 사람을 위해 내용을 대충 요약하자면 다음과 같다.

독일-한국의 경기에서 한 골이 발생했을 때, 독일이 넣었을 확률을 p_1, 한국이 넣었을 확률을 p_2라 두면 p_1 + p_2 =1, p_1 > p_2라 설정할 수 있다. 94년 월드컵에서 독일이 한국을 3:2로 이기고, 2002년 월드컵에서 독일이 1:0으로 이긴 전적이 있다. 총 골수 6골 중 독일이 4골이므로 러프하게 p_1 = 2/3, p_2 = 1/3이라 설정할 수 있다. 너무 러프한 것일지도 모르지만, 영상에서 강의하는 사람이 여러 요소를 고려했을 때. 이 수치가 나름 합리적이라 생각하는 듯 하다. ㅋ

여하간, 만약 총 골수 1골로 경기가 끝날 경우, 한국이 이길 확률은 p_2 = 1/3이 된다. 총 골수 3골로 경기가 끝날 경우, 한국이 이길 확률은

\displaystyle \binom{3}{0}p_1^0 p_2^3 + \binom{3}{1}p_1^1 p_2^2 = \frac{7}{27}

이 되어 p_2보다 작은 값이 된다. 5골일 경우,

\displaystyle \binom{5}{0}p_1^0 p_2^5 + \binom{5}{1}p_1^1 p_2^4 + \binom{5}{2}p_1^2 p_2^3 = \frac{51}{243}

이 되어 3골일 때보다 더 작은 값이 된다. 즉, 경기 중 발생한 총 골 수가 증가할수록 한국이 이길 확률은 점차 낮아지게 되어 있다. (아 근데 이 부분은 sequence가 monotone임을 증명해야 하지 않나? 증명은 귀찮음 ㅋ)

짝수일 경우도 마찬가지로 낮아지고, 따라서 한국이 우승확률을 최대로 높이기 위해서는 가능한 총 골수가 적은 전략(즉, 수비적 전술)을 사용해야 한다. 반면, 독일은 많은 골득실차가 필요한 상황이었고, 공격적 전술을 사용할 수 밖에 없었다 라는 내용같음. ㅋ 마지막에 언급한 항우유방 이야기는 뭔지 잘 모르겠음. ㅋ

한 가지 궁금한 점은, 그럼 여태까지 있었던 모든 전력차가 큰 경기가 이렇게 설명돼야 하는 거 아닌가 싶기도 하고, 그런 측면에서 설득력이 좀 떨어지는거 아닌가 싶기도 하고… ㅋ 뭐 스포츠에는 문외한이라… ㅋ

.


[1] 德国为啥被韩国绝杀?世界杯以弱战强的比赛策略是什么?李永乐老师告诉你(2018最新) (youtube 10분 5초)
[2] 내 백과사전 구글교 Church of Google 2010년 11월 19일

디지털 카메라의 작동원리

Data Genetics 블로그[1]에 재미난 글이 있길래, 블로그에 함 써봄. ㅋ

디지털 카메라의 각 화소별로 RGB 색을 따로 담당한다는 사실은 처음 알았다. 인간의 눈이 red, blue 보다 green에 더 민감하기 때문에, 녹색 화소를 더 조밀하게 배치한다고 하는데, 이것을 특허로 낸 Bryce Bayer의 이름을 딴 Bayer filter라고 한다고 한다.

그런데 이렇게 띄엄띄엄 떨어진 색의 강도 정보에서 중간에 빠진 부분을 어떻게 보충하여 디지털 사진을 만드는가? 중간에 빠진 색정보는 interpolation을 시도하는데, 부드러운 값의 변화를 위해서 polynomial interpolation을 시도할 경우, 그냥 Lagrange polynomial 같은 걸 쓰면 데이터가 조금만 변해도 degree의 변화가 심해서 값이 위아래로 크게 출렁인다고 한다. 이런걸 Runge 현상이라고 부르는 모양인데, 그래서 실제로는 piecewise로 polynomial interpolation을 시도하는 듯. 이런 polynomial을 spline이라 부르고, 특히 3차식으로 interpolation을 하는 기법을 Catmull–Rom spline이라고 부르는 듯 하다.

어 근데 Catmull이라 하니 어디서 많이 듣던 이름 아닌가 싶어서, 위키피디아를 보니 픽사의 창업자가 아닌가! 예전에 읽은 픽사 스토리[2]가 생각나는구만. ㅋ

근데 Catmull–Rom spline으로도 extreme value는 잘 처리가 안 되는 경우는, 극단적인 값과 다음 값 사이에 코사인 함수의 반쪽짜리를 끼워 넣는 수법을 쓰기도 하는 듯.

글[1] 중간에 나오는 Mind the Gap이라는 표현은 물론 유명한 런던 지하철의 그 문구다. ㅎㅎ 뒤쪽으로 모션블러의 처리법에 대한 이야기도 나오는데, 일전에 이야기한 카메라 기술[3]과도 관련이 있는 듯 하다. ㅋ

.


[1] Digital Cameras (datagenetics.com)
[2] 내 백과사전 [서평] 픽사 이야기 PIXAR TOUCH : 시대를 뒤흔든 창조산업의 산실, 픽사의 끝없는 도전과 성공 2011년 5월 26일
[3] 내 백과사전 재미있는 카메라 기술들 2011년 10월 21일

0.0001 이하의 오차로 원주율 작도하기

그렉 이건 선생의 구글플러스[1]를 보니, arXiv의 글[2]을 소개하고 있다.

쓸데없이-_- 원주율의 근사를 작도하는 이야기인데, 정12각형을 이용하여 비교적 간단한 방법으로 0.0001 이하의 오차로 원주율 길이를 구할 수 있다. 정12각형도 비교적 쉬운 도형에 속하니, 이보다 쉬운 방법으로 이 정도 정밀도가 되는 방법은 아마(?) 없을 듯 하다. ㅎㅎ

저자가 지오지브라를 이용한 페이지[3]도 만들어 놓았는데, 이 쪽도 참고할만 하다.

.


[1] https://plus.google.com/113086553300459368002/posts/e9Jn4zTf6oG
[2] Zoltán Kovács, “Another (wrong) construction of π”, arXiv:1806.02218 [math.HO]
[3] Constructing π from a regular 12-gon (geogebra.org)

수학자 John Rainwater

간만에 futility closet 블로그[1]를 보니 재미있는 이야기가 있다.

John Rainwater라는 수학자는 현재까지 10편의 논문을 쓰고, 가장 많이 인용된 것은 19회에 이르지만, 이 사람은 실존 인물이 아니다.[2]

1952년 워싱턴 대학의 Nick Massey라는 수학과 대학원생 학생은 전산상의 실수로 빈 학생증을 받게 되었는데, 그 당시 바깥에서 비가 내리고 있어서 Rainwater라는 가공의 인물을 만들었다고 한다. ㅋㅋㅋ 이 가상의 인물의 설정에 다른 학생들도 동참하여, 숙제도 꼬박꼬박 제출하였는데, 결국 그 학기 중간고사 시험을 칠 때 Arsove 교수에게 발각이 된 모양이다. Arsove 교수는 John Rainwater의 이름으로 발송한 폭발하는 만년필-_-을 받았어도, 대인배스럽게 그냥 넘어가준 모양이다. ㅋㅋ

수 년 후에 수학과 대학원생 그룹이 American Mathematical Monthly 문제들을 풀면서 John Rainwater의 이름으로 풀이를 송신한 모양인데, 이를 보고 MAA 측에서 MAA의 회원으로 가입하기를 권유했다고 한다. 당시에는 다른 회원 두 명의 추천이 있어야 했는데, 가장 이상적인 추천인으로 당시 수학과 학장이자 MAA 회장인 Carl Allendoerfer의 추천을 받는 것이 가장 좋았지만, Allendoerfer는 농담을 좋아하는 성격이 아니었던 것 같다. ㅋㅋㅋㅋ 그리하여 바쁘신 학장 대신에 학장의 비서를 설득하여 문서 위조-_-를 감행했다고 한다. ㅋㅋㅋ

보니까 한동안 John Rainwater의 이름으로 논문도 나오고, 그의 이름을 단 세미나도 개최되었던 모양인데, 일부 논문은 실제 저자가 누구인지 모호한 채로 남아있는 듯 하다.

다른 학술 분야는 모르겠는데, 익명 수학자 집단이 가상의 인물로 논문이나 책을 쓰는 사례는 니콜라 부르바키와 같은 다른 사례도 있으니, 아주 놀라운 이야기는 아니다. ㅎㅎ 그러나 재미로 인물을 만들어서 그런 설정(?)에 집단적으로 동참하고, 또 그런 전통이 이어지는 걸 보면, 이 사람들이 나름 유쾌한 사람들인 것 같긴 하다. ㅎㅎㅎ

 


[1] The Empty Set (futilitycloset.com)
[2] Biography of John Rainwater (at.yorku.ca)

저전력을 위한 이차방정식의 근의 공식을 개선하기

John D. Cook 선생의 블로그는 한동안 안 보고 있었는데, 해커뉴스[1]에서 John D. Cook 선생의 흥미로운 블로그 글[2]이 화제가 되고 있어 포스팅함. ㅋ

중학생들에게 ‘암기’라는 심리적 장벽-_-을 가져오기에 충분한 이차방정식 ax^2 + bx+c=0의 근의 공식은 잘 알려진 대로 다음과 같다.

\displaystyle x = \frac{-b \pm \sqrt{b^2 -4ac}}{2a} …… (1)

근데 실제 프로그래밍에서 플로팅 포인트 오차 때문에 이 공식을 그대로 쓰면 b가 매우 큰 경우에는 오차가 꽤 커진다고 한다. John D. Cook 선생은 파이썬으로 예시를 보여주고 있지만, 본인은 한국 수학 교사들의 영원한 동반자-_-라 할 수 있는 아래 한/글에 내장된 한글 스크립트로 구현해 보았다. ㅋㅋ

function OnScriptMacro_test12()
{
	var temp = quadratic(1, Math.pow(10,8), 1);

	HAction.GetDefault("InsertText", HParameterSet.HInsertText.HSet);
	HParameterSet.HInsertText.Text = "Answer : " + temp[0] + ", " + temp[1];
	HAction.Execute("InsertText", HParameterSet.HInsertText.HSet);
}

function quadratic(a, b, c)
{
	var r = Math.sqrt(b*b - 4*a*c);
	return [(-b+r)/(2*a), (-b-r)/(2*a)];
}

function quadratic2(a, b, c)
{
	var r = Math.sqrt(b*b - 4*a*c);
	return [2*c/(-b-r), 2*c/(-b+r)];
}

실행해보면 Answer : -7.450580596923828e-9, -100000000 가 나오는데, 두 번째 근은 얼추 정확하지만, 첫 번째 근은 실제 근에 비해 무려 25%나 오차가 발생한다. b의 값이 매우 크기 때문에 \sqrt{b^2 -4ac}는 거의 b와 가깝게 되고, 이 두 값을 빼는 순간, 상대적으로 작은 차이의 값이 매우 크게 부각된다.

이 부분을 방지하기 위해, 원래 근의 공식의 분모와 분자에 -b \mp \sqrt{b^2 -4ac}를 곱하여, 분자를 유리화한 다음과 같은 근의 공식을 생각한다.

\displaystyle x = \frac{2c}{-b \mp \sqrt{b^2 -4ac}} …… (2)

위 한글 스크립트 코드의 3번 라인에 함수를 두 번째 걸로 바꾸면 된다. 실행해보면 Answer : -1e-8, -134217728 가 나오는데, 이번에는 첫 번째 근이 얼추 맞지만 두 번째 근이 같은 이유로 34%나 오차가 발생한다. 따라서 결론은 두 방법들 중 정확한 것들만 취하면 된다!!

왜 이런 방법이 필요한가에 대해 John D. Cook 선생은 저전력의 장점에 대해 설명하고 있다. floating point 계산에 드는 전력은 64피코줄, 레지스터에 데이터를 저장하는데 드는 전력은 6피코줄 정도의 에너지를 소모하지만, DRAM의 데이터를 읽는데 드는 전력은 무려 4200피코줄의 에너지를 소모한다고 한다. 따라서 식 (1)만으로 이차방정식을 풀려면 더 많은 전력소모를 하게 된다. 즉, 모바일이나 IoT에서 더 적은 전력소모로 프로그램을 구현하기 위한 방법이라 할 수 있다. (댓글을 참조 바람)

근데 본인은 프로그래머가 아니라서, 프로그래밍을 할 때 정말로 이차방정식을 풀 필요가 있나?? 싶은 의문이 좀 들던데, 해커뉴스[1] 사람들의 이야기를 보니 몇몇 경우에 따라서는 floating point error를 심각하게 생각하는 경우가 있는 모양이다. 이거이거 중학교 수학 샘들은 식 (2)와 같은 근의 공식도 암기하도록 교육하시길 바란다. ㅋㅋㅋㅋㅋㅋㅋㅋ

이걸 보니 일전에 제곱근 역수를 계산하는 트릭[3]이 생각나는데, 수학에 기반하여 연산속도를 높이거나 전력소모를 줄이는 프로그래밍 트릭이 앞으로도 쓸모가 없지는 않을 듯 하다. ㅎㅎㅎ

 


[1] The quadratic formula and low-precision arithmetic (hacker news)
[2] The quadratic formula and low-precision arithmetic (John D. Cook)
[3] 내 백과사전 제곱근 역수와 마법의 수 0x5f3759df 2014년 10월 29일

프리프린트 공유 사이트

수학, 물리학, 천문학, 컴퓨터 공학 분야의 출판전 논문을 공유하는 arXiv[1]는 유명한데, 오늘 페북의 고생물학 그룹을 보니 고생물학분야에서도 출판전 논문을 공유하는 PaleoXiv라는 사이트[2]가 생긴 듯 하다. 오호! 아직 총 논문이 74편 밖에 안 되니 신생 사이트인 듯. ㅋㅋ

얼마전에 신경정신 과학의 출판전 논문을 공유하는 PsyArXiv라는 사이트[3]를 본 적이 있었는데, 위키피디아를 보니 사회과학의 출판전 논문을 공유하는 SocArxiv[4]도 있네??? 헐… 첨 알았음. 근데 사회과학쪽은 프리프린트 오픈억세스로 SSRN[5]이 있어서 어떨지 모르겠다. ㅋ 생물학 쪽의 bioRxiv[6]는 꽤 오래 전에 본 기억이 있다. 이쪽은 숫자가 꽤 많이 증가한 듯 하다.

위키피디아를 보니 viXra라는 사이트도 있는 듯 하다. 메인페이지[7] 하단의 자신들의 소개에 따르면, 코넬 대학교의 운영방침에 반하여 arXiv에 싣지 못하는 논문에 대한 대안으로 만든 사이트라고 한다. 뭔 일이 있었던 건가-_-? viXra는 arXiv를 거꾸로 한 것인데, 마치 DivX에 반발하여 만든 Xvid를 연상케 한다. ㅎㅎ

생각이 나서 오랫만에 snarXiv[8] 사이트에 가 봤는데, 아직도 운영되는 듯? ㅋㅋㅋ

 


[1] https://arxiv.org/
[2] https://paleorxiv.org/
[3] https://psyarxiv.com/
[4] https://osf.io/preprints/socarxiv
[5] https://www.ssrn.com/
[6] https://www.biorxiv.org/
[7] http://vixra.org/
[8] 내 백과사전 snarXiv 2010년 6월 9일

[서평] 소수와 리만 가설 – 질서와 패턴을 찾고자 하는 이들의 궁극적 도전 대상

소수와 리만 가설 – 질서와 패턴을 찾고자 하는 이들의 궁극적 도전 대상
배리 메이저(저자) | 윌리엄 스타인(저자) | 권혜승(역자) | 승산 | 2017-06-27 | 원제 Prime Numbers and the Riemann Hypothesis

 


일전에 본 블로그에서 언급[1]한 스테인 선생과 메이저 선생의 그 책[2]이 번역서로 출간될 줄은 꿈에도 몰랐다. 웬 떡이냐. ㅋㅋㅋ 작년에 출간된 듯 한데, 인제사 발견해서 후닥닥 읽어봤다. ㅋ

국내에 John Derbyshire의 책인 Prime Obsession의 번역서[3]가 출간되어 있어, 관심있는 사람은 이미 대부분 읽어봤을 것이라 생각한다. 본인이 알기로 국내 대중서 가운데 리만 가설이 중심 주제인 책은 이 한 권 뿐이었던 걸로 알고 있는데, 번역되지 않은 책들 중에서는 리만 가설에 대한 대중서가 꽤 있는 듯 하다.

그러나 그런 책들은 대부분 비교적 역사적 관점에서 리만 가설을 설명하는 책인데 비해, 이 책은 수학적 배경이 적은 사람에게 리만 가설이 왜 중요한지에 대해 실제로 수학적 설명을 시도하는 책으로, 다른 대중서들과는 조금 방향성이 다르다. 근데 내가 보기에는 독자들이 가진 수학실력의 폭을 너무 크게 잡은 바람에 앞부분은 너무 쉽고, 갈수록 어려워져서 뒷부분은 너무 어려운-_- 요상한 책이 돼 버렸다. ㅋㅋㅋ

텍스트의 분량 자체는 그리 많지 않지만, 이리저리 찾아가면서 읽으면 나름 시간이 걸릴 듯한 책이다. 뭐 나는 수학에 별로 관심이 없어서-_- 초 대충 읽었다. ㅋㅋㅋ

뭐 여하간 책안에 적분, 로그, 시그마 등등의 수식이 등장하니 최소한 고교수학 정도의 실력은 있어야 볼만할 듯 하다. 수학에 좀 관심이 있는 고교생들은 좋아할 듯. ㅋ

 


[1] 내 백과사전 Barry Mazur와 William Stein의 새 책 2015년 11월 25일
[2] Prime Numbers and the Riemann Hypothesis (amazon.com)
[3] 존 더비셔 저/박병철 역, “리만 가설“, 승산, 2006

CoCalc : 웹기반 토탈 수학 관리 플랫폼?

스테인 선생의 구글플러스[1]에서 CoCalc에 대한 이야기를 들었는데, 이런 서비스가 있는 줄 처음 알았다. 위키피디아를 보니 론칭한지 5년이나 됐네-_-

근데 이게 무슨 서비스인지 한마디로 설명하기 곤란한 것 같다. 홈페이지[2]의 설명을 대충 보니 수학 문서작업을 할 수도 있고, 공동 저술을 할 수도 있고, 여러가지 CAS 언어 기반으로 계산도 할 수 있고, 교사가 학생들에게 숙제 같은 것도 배포할 수 있는 교육용 툴로도 쓸 수 있는 것 같다. 완전 수학의 짬뽕 토탈 솔루션이네-_- 간단한 소개가 유튜브 영상[3]으로도 있다.

독특한 기능으로, 타임라인이라는 것이 있어서 편집하는 모든 중간 과정이 기록되고 어느 부분이든 복구가 되는 듯 하다.

앞으로 좀 더 네트워크의 속도가 빨라진다면, 개인용 컴퓨팅 환경은 OS와 저장 공간에 독립적인 웹베이스로 갈 것 같은데, 정말 스테인 선생의 백년지대계 같은 느낌이다. 근데 수학 저변인구가 그리 크지 않다는 걸 감안한다면, 과연 수익성이 얼마나 있을까 싶기도 하다. ㅎㅎㅎ 아무래도 수익성을 생각한다면 교육 플랫폼 쪽으로 나가야 할 것 같기도 하다.

 


[1] https://plus.google.com/u/0/115360165819500279592/posts/9CE6y4w99aG
[2] https://cocalc.com/
[3] An overview of CoCalc (youtube 9분 1초)