
우리는 R2를 다룰 때 마음 속에 아래와 같은 공간을 상정한다. 그런데 생각해보면 R2는 두 실수 a와 b에 대해서 (a,b)를 모은 것일 뿐, 여기에 길이나 각도를 준 적이 없다. 예를 들면 2차 다항식의 공간 R2[x]는 3차원 벡터공간인데, 이것의 기저를 {1,x,x2}로 잡을 수는 있지만 1과 x가 직교하냐고 물으면 할 말이 없어진다. 익숙한 dot product는 아래와 같이 계산되는데, 이것은 사실 아래의 과정을 축약한 것이다. 여기서 표준기저는 모두 길이가 1이고 서로 직교한다는 가정이 깔려있다. 하지만 꼭 그래야 할 이유는 없다. 예를 들어 나는 (1,0)과 (1,1)의 길이가..

0. 인셉션에는 멋있는 장면들이 많이 나오지만, 가장 기억에 남는 대사는 영화 극초반에 나온 다음 대사이다. 코브: 가장 끈질긴 기생충은 뭘까요? 박테리아? 바이러스? 아서: 코브씨가 말하려는 것은- 코브: 생각(idea)입니다.1. "수학 공부"에 대해 흔히들 갖고 있는 이미지가 있다. 수능 문제 잘 풀고, 중고등학생 과외를 기깔나게 해줄 수 있고, 수학적으로 신기한 거 많이 알고 있는 것. 어떤 면에서는 전공 수학과 대중과의 괴리에서 기인한 현상이라고 볼 수 있다. 제도권 수학과 전공 수학이 너무 다르기 때문이다. 제도권 수학은 순수히 "기술"을 가르치는 수학이다. 문제를 빠른 시간에 정확하게 풀고 정확한 답을 도출하는 기술. 나는 이것을 "매뉴얼식 공부"라고 부른다. 세탁기 매뉴얼을 보고 세탁..

시간을 달리는 소녀에서 주인공 마코토는 자기가 먹으려고 사둔 푸딩을 동생이 먹었음을 깨닫고 짜증을 낸다. 그런데 사실 마코토는 동생이 푸딩을 먹는 모습을 보지 못했다. 그렇다면 무슨 논리로 동생이 푸딩을 먹었음을 알았을까? 상황을 아래와 같이 단순화하자.- 마코토는 푸딩을 하나 사서 냉장고에 넣어두었다.- 밖에 나갔다 들어오니 푸딩이 없어졌다.- 그 사이에 집에 들어왔던 사람은 동생밖에 없다. 분명히 마코토는 동생이 푸딩을 먹는 모습은 보지 못했다. 하지만 우리는 알고 있다. 동생이 먹었다. 어떻게 알 수 있을까? 우리가 보이려는 명제는 아래와 같다. 푸딩이 없어졌고, 집에 들어왔던 사람은 동생밖에 없다 → 동생이 푸딩을 먹었다. 위 명제가 참이라면, 동생이 푸딩을 먹었음을 보이기 위해 전건을 확인하면 ..

지난 글에서 추가된 기능- 함수화 하였음 (chat_race.m)- 날짜 단위로 끊는 기능 (dayChunk)- 여전히 개수 단위로도 끊을 수 있음 (NChunk)- 제외할 username 지정 가능 (nameExclude)- 어디서 끊을지 정하지 않으면 기본값은 7일 단위로 끊는 것 % 10일 단위로 끊기chat_race(file, dayChunk=10)% 1000개 단위로 끊기, "방장봇" 제외chat_race(file, NChunk=1000, nameExclude="방장봇")% 7일 단위로 끊기chat_race(file) 전체 코드 function chat_race(file, opts)arguments file opts.dayChunk (1, 1) = 7 opts.NChunk (1..

Angelo님의 블로그에서 "꿈틀 꿈틀 움직이는 바 그래프를 그려봅시다"라는 글을 본 적이 있다. 신기해서 나도 써먹어보려고 했으나 마땅히 적용할 데이터가 없어서(...) 미루고 있던 차에, 단톡방 통계를 내 달라는 퀘스트를 받았다. 그냥 특정 기간 동안 말 많이 한 사람을 추려내는 건 정규식 지옥만 빼면 쉽다. 하지만 이왕이면 꿈틀 꿈틀 움직이는 그래프면 더 재밌지 않겠는가. 그런데 해당 글을 다시 보니 문제가 있음을 깨달았다. 오리지날 코드는 데이터가 아래와 같이 timetable 형태여야 한다. 위 데이터는 일본의 각 현의 인구수 변화이다. 첫 번째 column은 시간(년도)이고, 두 번째부터는 시간에 대한 인구수 데이터이다. 반면 단톡방 대화내역은 아래처럼 생겼다. 두 가지 작업을 해야 한다..

자연과학에서 이론의 근거는 관찰과 실험이다.수리과학에서는 그것을 '계산'이라고 부른다.─ 조건희 몸풀기 아래 선형 연립 방정식을 풀어보자. 3개의 식 사이에 더하기/빼기를 할 수 있다. x1을 하나만 남기기 위해 1번 식의 2배를 2번 식에서 뺀다. x2와 x5는 이제 바꿀 방법이 없다. 이번엔 x3을 하나만 남기기 위해 2번 식의 2배를 1번 식에 더하고, 2번 식의 4배를 3번 식에 더한다. 마지막으로 x4는 마지막 식에서만 남긴다. 계수는 1로 맞춘다. 여기까지의 과정을 elementary row operation이라고 부르며 최종 형태를 reduced-row echelon form이라고 부른다. 미지수가 5개인데 식이 3개이므로 해가 유일하지 않으며, 2개의..

Let A and B be n×n matrices. Also let f and g be lineat operators such that f(x)=Ax, g(x)=Bx. Because AB=E, A and B are invertible, and f and g are bijective. (Proof is left as an exercise.) Now we have,f∘g=id→(f∘g)(x)=xthen for all x∈Fn,\begin{align}g(x) = g ((f\circ g)(x)) = (g \circ f)(g(x))\end{ali..

Let V1, V2 be vector spaces, dim(V1)=n, dim(V2)=m. Also letB1={β1,⋯,βn}B2={γ1,⋯,γm}be bases of V1 and V2, respectively. Every vector x∈V1 is uniquely expressed asx=b1β1+⋯+bnβnFor a linear transformation T:V1→V2, the image of each basis vector o..

원문: https://testdriven.io/blog/clean-code-python/ [Clean Code in PythonThis article looks at how to write clean code in Python.testdriven.io](https://testdriven.io/blog/clean-code-python/)내용은 일부 생략했습니다.PEP 8Naming클래스명은 CamelCase로 한다. (MyClass)변수명, 함수명, 모듈명은 snake_case로 한다. (first_name, quick_sort(), numpy)상수는 대문자 snake_case로 한다. (PI = 3.14159)문자열을 작은 따옴표로 할지 큰 따옴표로 할지는 일관성만 갖추면 된다. Line formatt..