
얼마 전 계승혁 교수님의 집합론 영상을 끝까지 봤다. 마지막 챕터가 선택공리, 서수, 기수에 대한 내용이었는데, 서수와 기수를 먼저 이용해놓고는 막상 정의는 마지막에 가서 하는 것이 좀 의아했다. 예를 들어 전단사함수가 존재하는 두 집합 X와 Y는 대등하다(equipotent)고 말하며, 아래와 같이 쓰면서, X≈Y⇔card(X)=card(Y) "card(X)"를 X의 기수라 부른다"고 적혀있다. 만족스럽지 않은 설명이라고 생각했는데, 정의를 보니까 왜 정의를 나중에 설명하는지 납득이 됐다. 솔직히 이 글을 쓰는 지금도 이해했다고는 말 못하겠는데, 감은 온 것 같아서 기록을 남겨둔다. 두..

Thm. Every vector space has a basis. (even in the case of infinite dimension) proof) Let V be a vector space other than {0}. Pick a vector x≠0 from V. Consider the set X={S⊆V|x∈S,S is linearly independent}. Then (X,⊆) is an ordered set. Obviously X is nonempty because {x}∈X. By Hausdorff maximal principle (see below), X has a maximal..

꼬앵이 체중관리표를 보다가 문득 이런 생각이 들었다. 매일 똑같이 먹고 똑같이 움직이면 체중은 수렴할까? 그래서 아래와 같은 문제를 만들어보았다. 철수네 강아지 해피가 살이 너무 쪄서 체중관리에 들어가기로 했다. • 현재 해피 체중은 20 kg이다.• 사료는 1 g 당 3 kcal의 열량을 갖는다.• 현재 체중 기준, 먹은 사료 중 50%는 똥으로 나오고, 나머지 50%는 에너지로 전환 및 흡수된다. - 사료의 에너지 전환율은 체중이 1 kg 감소할 때마다 1%씩 증가한다. 예를 들어, - 20 kg일 때는 먹은 사료 중 50%가 에너지로 전환되지만, - 19 kg일 때는 먹은 사료 중 51%가 에너지로 전환된다.• 운동은 매일 1시간을 하는데, 현재 체중 기준, 300 kcal의 에너지를 ..

콰인은 자기 자신의 코드를 출력하는 코드이다. 즉, 실행 결과가 자신의 코드와 동일해야 한다. 생각보다 간단하지 않다. 무지성으로 아래처럼 짜면 disp('disp') 출력은 disp만 되므로, 다시 아래처럼 고쳐야 하고, disp('disp(''disp'')') 이렇게 해봤자 다시 코드가 늘어났으므로 다시 코드를 늘려야 한다. 아래는 chatGPT가 알려준 매트랩 콰인이다. quine = 'fprintf(''%s%s%s'', char(10), ''quine = '';, quine, char(10), quine);';fprintf('%s%s%s', char(10), 'quine = ', quine, char(10), quine); 그런데 틀렸다. 따옴표 2개는 따옴표 1개로 바뀌기 때문이다. 다시 물어..

15. 파일 시스템CPU, 메모리, OS의 동작원리 등을 공부하면서 느낀 것을 딱 하나 말하라면, 이렇게 말하겠다.이게 돌아간다고?!그것도 수 GHz의 속도로!?컴퓨터를 설계하는 사람들이 대단하다고는 생각하고 있었지만,그 존경심이 백 만 배만큼 더 커진 것 같다.마지막은 파일 시스템이다.파일 시스템이야 뭐 별거 있나...?그냥 폴더 있고 파일 있는게 전부 아닌가?...라고 생각하면 오산이다.15.1 파일과 디렉터리내가 생각했던 보조기억장치, 디렉터리, 파일의 구조는 아래 그림과 같았다.출처: https://wikidocs.net/223730책장이 보조기억장치이고, 책장 한 칸은 폴더, 상자는 파일이다.이 그림도 어쩌면 수정해야 할 수도 있겠다.파티션의 존재 때문인데... 조금 뒤에 설명하겠다.파일은 그 ..

14. 가상 메모리지금까지 OS가 프로세스를 어떻게 관리하는지 열심히 배웠다.핵심은 OS가 프로세스에게 자원을 어떻게 잘 배분하는가였다.그런데 프로세스는 메모리에 올라간다.프로세스를 메모리에 올리는 것도 분명히 OS가 관리해야 할 사항이다.그 과정에서 가상 메모리의 개념이 자연스럽게 등장하게 된다.14.1 연속 메모리 할당연속 메모리 할당(contiguous memory allocation)은 프로세스를 메모리에 올리는 가장 간단한 방법이다.가장 먼저 실행될 프로세스를 메모리에 올리고, 그 다음 실행될 프로세스를 바로 뒤에 올린다.다만, 인터넷을 찾아보면 연속 메모리 할당도 두 가지 방법으로 세분화된다.책에 있는 것과 같이 빈틈 없이 메모리가 채워지는 것을 variable-size allocation이라..

13. 교착 상태교착 상태는 아래 이미지 한 장으로 설명 가능하다.서로가 각자에게 필요한 것을 가지고 있다!어떡하지?13.1 교착 상태란OS, 프로세스, 자원의 관점으로 보자면 아래와 같은 상황이다.출처: https://www.geeksforgeeks.org/introduction-of-deadlock-in-operating-system/교착 상태(deadlock)가 성립하기 위한 조건은 네 가지가 있다.상호 배제: 하나의 자원은 한 번에 하나의 프로세스만 점유할 수 있다.점유와 대기: 프로세스가 자원 하나를 붙들고 다른 자원을 기다릴 수 있다.비선점: 프로세스가 다른 프로세스의 자원을 강제로 뺏을 수 없다.원형 대기: 위 그림처럼, 자원 할당 그래프가 루프를 만들 수 있다.13.2 교착 상태 해결 방법..

12. 프로세스 동기화줌으로 회의를 하다 보면 좀 불편할 때가 있다.두 명 이상이 동시에 말할 때다.그래서 손을 먼저 들고 말할 순서를 정하면 된다.하지만 사실 그것도 불편하다.프로세스도 동시에 실행되고 싶을 때가 있다.하지만 동시에 실행할 프로세스들이 같은 자원을 쓴다면 문제가 된다.줌 회의로 비유하자면, 공간과 시간(자원)을 같이 쓰고 싶은 두 사람이 있을 때의 문제이다.12.1 동기화란아주 간단한 예시로, 같은 파일을 두 프로세스가 동시에 수정하는 경우 문제가 생길 수 있다.얼핏 생각하면 그게 왜 문제인지 와닿지 않을 수 있다.사람 기준이 아니라 컴퓨터의 기준으로 생각해야 한다.예를 들어, 파일의 값을 읽어서 1 증가시켜서 저장하려면 아래의 과정이 필요할 것이다. (틀릴 수 있음)프로세스가 OS를 ..

수학 책에는 많은 정리(theorem)들이 나온다. 이 정리를 대하는 두 가지 방법이 있다. 하나는 정리의 증명을 한 줄 한 줄 따라가면서 왜 그 정리가 참인지 이해하는 것이다. 이 과정을 통해 정리가 참임을 “안심하고 믿을 수” 있게 된다. 다른 하나는 왜 그 정리가 참일 “수밖에” 없는지 자기만의 구조와 직관을 만들어보는 것이다. 어쨌든 책에서 거짓말을 하지는 않았을 테니, 그 정리를 참으로 받아들이면 어떤 일이 일어나는지 상상해볼 수 있다. 두 방법 모두 이해의 획득을 목표로 하고 있지만, 획득의 과정과 결과물의 질감은 꽤 다르다. 적어도 내가 알기론, 많은 전공 수학 책이 정리-증명-정리-증명-(가끔 따름정리)-연습문제의 패턴이 반복되게 적혀 있으며, 상상은 독자의 영역으로 남겨둔다. 간혹 그러한..