설찬범의 파라다이스
글쓰기와 닥터후, 엑셀, 통계학, 무료프로그램 배우기를 좋아하는 청년백수의 블로그
정보 (78)
에임연습 사이트 Aimbooster - FPS 초보탈출하는 법
반응형



  배틀그라운드, 오버워치, 레인보스 식스 시즈 등 FPS게임에서 제일 중요한 것이 무엇일까요? 무엇보다 손놀림으로 정확히 조준하는 이른바 '에임'이겠죠.


  캐주얼 FPS는 에임이 그렇게까지 중요하지 않은 캐릭터를 넣어서 진입장벽을 낮추기도 하는데, 예전 언리얼 토너먼트나 퀘이크는 에임이 없으면 1초도 살아남기 어려운 '고인물' 게임이었습니다. 지금도 물론 좋은 에임이 있으면 좋고, 에임연습을 한다면 더 좋습니다.


  뭐든 노력하면 발달한다는 마인드셋이 성공의 비결이라 말하는 사람도 있습니다. 혹시 압니까? 에임이 늘면 티어도 늘지도? 에임연습하는 사이트 중 제일 유명한 에임부스터AimBooster를 소개합니다. 포트나이트로 유명한 외국 스트리머 슈라우드도 방송 중에 에임부스터로 에임연습을 하기도 했습니다.




에임부스터 사용법


*에임부스터를 실행하려면 플래쉬와 자바가 필요합니다.




에임부스터에는 두 가지 모드가 있습니다.

챌린지Challenge와 트레이닝Training이 있는데

챌린지가 당연히 더 어렵습니다.

오른쪽 위에는 전체화면, 소리끄기/켜기, 설정입니다.





설정에 들어가면 과녁과 크로스헤어를 정할 수 있습니다.

색과 크기를 정합니다.





난이도를 정하면 모드가 나옵니다.

총 아홉 모드가 있는데

제작자는 Autobalanced를 제일 좋아하나 봅니다




Autobalanced부터 해 봤습니다.

화면 곳곳에 과녁이 나타났다 사라집니다.


Speed는 많은 과녁을 재빨리 맞추는 훈련

Precison은 아주 작은 과녁을 정확히 맞추는 훈련

Twitch는 갑자기 나타나는 과녁을 맞추는 훈련 등

다양한 훈련이 있지만

제작자 말대로 Autobalanced가 제일 훈련에 적합한 것 같습니다.






  연습은 더 나은 결과를 만든다고 합니다. 고대 그리스의 데모스테네스는 어눌하고 호흡량도 적었지만, 입에 돌을 물고 언덕을 올라가며 말하는 연습을 통해 고수 웅변가로 거듭났습니다. 물론 저희 같은 FPS 평민들이 에임연습을 한다고 대회급 선수가 되진 않겠지만, 초보는 탈출할 수 있지 않을까요?

반응형
  Comments,     Trackbacks
Surveymonkey 사용법(서베이몽키)
반응형

  서베이몽키는 무료로 온라인 설문조사를 열 수 있는 사이트입니다. 여러 기업이나 연구소에서도 조사용으로 사용하고 있지만, 무료라서 재미로 사용할 수도 있습니다. 무료 버전에서는 설문조사당 응답수가 제한되며 데이터를 파일로 내보낼 수 없습니다.



서베이몽키 사용법





우선 회원가입부터 합시다. 사이트에 들어가 '무료 회언가입'을 누릅니다.




  아이디를 직접 입력해도 되지만 구글, 페이스북 계정이 있으면 연동해 가입할 수 있습니다. 저는 구글 계정으로 가입해 보겠습니다.





  사용자를 파악하는 질문이 쏟아지지만, 저는 다이렉트로 '설문조사 만들기'를 눌러 설문조사를 만들겠습니다.





  설문조사 제목과 내용을 정합니다. 전 '시범설문조사'로 정했습니다. 왼쪽 질문 은행에서는 실제로 쓰이는 여러 질문들이 있습니다. 오른쪽은 설문조사를 만드는 공간입니다. 페이지를 늘려 여러 페이지로 할 수도 있고, 한 페이지에 여러 질문을 넣을 수 있습니다.


  참고로 네이버 폼이나 구글 설문조사도 설문조사를 지원합니다. 이 기능들도 무료고 쓸만하므로 한 번 비교해 보시기 바랍니다.









  '새 질문'을 누르면 질문을 추가합니다. 제목 입력란 오른쪽에 질문 종류를 고르는 메뉴가 있습니다. 지금은 '객관식'이라 되어 있네요.






  질문 종류는 다양하게 정할 수 있습니다. 주관식이나 체크, 순위 결정도 가능합니다. 객관식도 '해당 없음'이나 '기타'로 주관식을 추가 가능합니다. 저는 순위형으로 정해 봤습니다.






질문을 다 만들었으면 '완료'를 눌러 빠져나옵니다.






미리보기가 나옵니다. 원하는 대로 되었으면 다음 단계로 값니다.






  '설문 응답 수집' 단계에서는 응답을 받을 방법을 정합니다. 이메일로 뿌리거나, 링크를 만들어 보내거나, SNS에 게시하는 등의 방법이 있습니다. 저는 링크로 해보겠습니다.






  링크가 생겼습니다. 썸네일을 넣는 등의 기능은 유료입니다. 다만 복수응답과 응답 수정을 제한하고 허락하는 기능은 있어서 다행입니다.






  '설문 결과 분석'에서는 현재까지 받은 결과를 볼 수 있습니다. 저는 아무한테도 공개하지 않았으니까 당연히 응답이 없습니다. 이 결과를 엑셀파일 등으로 내보내는 기능은 유료서비스에 가입해야 합니다. 다른 유료 서비스라면 모를까 이건 유료가 당기네요.



반응형
  Comments,     Trackbacks
Unsplash(언스플래시) - 저작권 없는 사진 사이트
반응형

언스플래시




  유튜브나 블로그에서 사진을 쓰고 싶다면, 저작권 문제는 피하는 것이 좋습니다. 당연히 다른 사람이 찍은 사진을 내 사진처럼 이용한다면 문제가 되겠죠. 다행히 저작권 없는 사진을 모아두는 사이트가 있어서 소개해드리려 합니다. 픽사베이(pixabay)는 너무 유명해서 딱히 소개할 필요를 못 느껴 왔습니다(몰랐다면 죄송합니다). 그러다 새로운 무료 사진 사이트를 알게 되었습니다. 언스플래시(Unsplash)라는 곳입니다.






무료 사진들





  이곳은 저작권 없는 사진을 제공하는 사이트입니다. 완전 무료입니다. 상업적 이용? 가능합니다. 출처? 표시 안 해도 됩니다. 물론 사진을 찍은 사람과 제공하는 사이트에 고마움의 의미로 표시한다면 좋겠죠. 현재 약 850,000장의 무료사진이 있는데 대부분 사진사들이 찍은 것들입니다. 나사나 애플 등의 기관에서 제공하는 사진도 있습니다(물론 이것도 공짜입니다). 사용법도 간단해서 그냥 검색하고 클릭한 다음 다운받으면 됩니다.






픽사베이 vs 언스플래시


  저작권 없는 사진을 올리는 사이트라면 단연코 픽사베이가 유명하고, 따라서 픽사베이와 비교가 불가피합니다. 언스플래시는 픽사베이에 비해 커뮤니티성이 강합니다. 사진 수는 1,000,000장이 넘는 픽사베이보다는 조금 모자라지만, 해상도나 한 장 한 장의 퀄리티는 이쪽이 판정승입니다. 다만 픽사베이에 있는 무료 벡터 그래픽이나 무료 동영상이 없습니다.



다양한 가능성




  '메이드 위드 언스플래시'라는 사이트도 운영중입니다. 여러 사람이 사이트가 제공하는 사진으로 만든 합성예술, 제품, 사이트 디자인을 전시하고 있습니다. 예술 감각만 있다면 공짜 사진으로도 멋있는 것을 만들 수 있다는 사례이자, 공짜 사진도 유료 사진 부러울 것 없다는 사이트의 자랑 컬렉션입니다.





공짜다, 공짜!


  여러분도 PPT, 블로그, 유튜브, 웹사이트, 광고 등을 디자인할 때 반드시 참고해보시기 바랍니다.


저작권 없는 사진 사이트 언스플래시

반응형
  Comments,     Trackbacks
웨이브패드에서 무료 음악, 음향 얻기
반응형




  웨이브패드(WavePad)는 NCH 소프트웨어에서 만든 사운드 편집 프로그램입니다. 비상업적, 가정용인 전제로 무료이며 유료 결제하면 더 많은 기능을 이용할 수 있습니다.


  사운드 편집 프로그램은 웨이브패드 말고도 오다시티 등 많습니다만(오다시티는 심지어 완전무료입니다), 굳이 웨이브패드를 소개하는 이유는 웨이브패드가 지원하는 사운드 라이브러리 때문입니다. NCH가 만든 음향, 비디오 관련 프로그램은 NCH 사운드 라이브러리를 지원합니다. 다양한 음악과 음향 효과가 있는데 이 사운드들은 모두 무료입니다. 실제 홈페이지에서도 저작권 없음(royalty free, license free)이라 안내하고 있습니다. 개발사에는 조금 미안하지만, 저작권이 없으니 음악과 음향만 여기서 얻어내 봅시다.



음악, 음향 얻어내기






  링크에서 설치파일을 다운로드해 설치합니다. 설치할 때 한글을 선택하면 한국어 버전으로 설치됩니다.





  설치가 끝나면 자동으로 프로그램이 실행됩니다. '도구' 탭에서 '사운드 라이브러리'를 누릅니다.





  여러 범주(폴더)가 있습니다. 원하는 음악이나 음향을 찾습니다. 미리듣기가 가능합니다. 찾았으면 '다운로드'를 누릅니다.






  프로그램 안에 사운드가 들어왔습니다. 이 상태에서 '파일 - 파일을 다른 이름으로 저장'을 눌러 저장합니다. 여러 확장자가 가능합니다.





이제 음악파일이 생겼습니다. 개발사에 감사를 표하고 사용합시다.

반응형
  Comments,     Trackbacks
카르노 맵(Karnaugh map)과 짝사랑
반응형



1

대학생 철민이는 같은 과 영희를 짝사랑한다.

그래서 영희와 같이 있고 싶다.

철민, 영희, 민수는 같이 뭉쳐다니는 사이인데,

철민이는 영희를 좋아하는 마음이 커지다 보니

영희가 있을 때만 점심을 같이 먹는다.

민수만 있으면 같이 안 먹고,

영희가 있으면 민수가 있든 없든 같이 식사를 하는 것이다.


철민이의 속내를 모르는 민수는

철민이가 왜 이날은 같이 점심을 먹고 저날은 안 먹는지

아리송할 뿐이다.




논리식을 간소화하는 카르노 맵




카르노 맵(카노 맵, Karnaugh map)은 K맵, KM 등으로 불리며,

모리스 카르노가 발표한 논리식 축약 방법이다.


예를 들어 이런 진리표가 있다고 하자.




잘 보면 C는 B로만 결정된다.

(B가 1이면 C는 0, B가 0이면 C는 1)



그러니 논리식에 A가 필요가 없으며,

만약 회로로 이걸 만들어야 한다면

A는 넣지 않아도 되므로 부품값과 전기세를 아낄 수 있다.




카르노 맵을 그리는 규칙


1. 바로 이웃한 칸들을 묶는다.

2. 묶는 칸 수는 2의 제곱수(2, 4, 8...)이어야 한다.

3. 묶는 칸 모양은 직사각형이어야 한다.

4. 묶은 칸들을 더한다. 이때 변하지 않는 변수만을 남기며, 0일 때는 반대 값으로 더한다.


이제 민수의 호기심을 해결해 주자.

'민수가 밥을 먹음'을 A라 하고

'영희가 밥을 먹음'을 B라 하고

'철민이가 이들과 밥을 먹음'을 C라 하자.

진리표는 다음과 같다.




이걸 카르노 맵으로 그리면 다음과 같다.







이 묶인 사각형에서 변하지 않는 값은 B다.

따라서 이 논리식은 이렇게 표현할 수 있다.


C = B





2

그 나이 대학생이 다 그렇듯이

철민이는 순간 짝사랑하는 자신이 부끄러워졌다.

안 그래도 어리둥절한 민수한테 들킬까봐 두려워진 철민이는

이제 그냥 민수와 영희, 둘 중 아무나 있어도 밥을 먹기로 했다.


진리표는 다음과 같다.




카르노 맵을 그리면 다음과 같다.




카르노 맵에서 사각형을 묶을 때, 공통으로 묶인 칸이 생겨도 상관은 없다.


하늘색 네모에선 B가 변하지 않으며

노란색 네모에선 A가 변하지 않는다.

따라서 논리식은 이렇게 표현된다.


C = A + B



3변수 카르노 맵




며칠 후 같은 과 주연이가 이 삼총사에 끼어들었다.

주연이는 영희의 소꿉친구였다.

철민이는 이 주연이한테 영희가 무얼 좋아하는지, 어떤 남자를 좋아하는지 물으면 좋을 것 같다고 생각했다.

다시 짝사랑이 불타오른 것이다.


그래서 철민이는 세 경우에만 점심을 먹기로 했다.

영희와 단 둘이 있을 때.

주연이와 단 둘이 있을 때.

영희와 주연이와 있을 때.


'세 변수에서 카르노 맵을 어떻게 그리지?'라고 생각할 수 있지만

생각보다 간단하다.

바로 한쪽 축에 두 변수를 같이 쓰면 된다.


A : 민수가 밥을 먹음

B : 영희가 밥을 먹음

C : 주연이가 밥을 먹음

D : 철민이가 밥을 먹음


그런데 보다시피 00, 01, 10, 11이 아니라

00, 01, 11, 10이다.

이것은 밑으로 가면서 한 변수만 변하게 해서

카르노 맵을 그릴 수 있기 위함이다.



초록색 네모에서는 B가 변하므로 버리고

하늘색 네모에서는 C가 변하므로 버린다.


따라서 논리식은 다음과 같다.

D = A'C + A'B



참고 

카르노 맵에서 칸을 묶을 때

지구본처럼 위아래가 연결된다고 생각한다.

따라서 이렇게 묶을 수도 있다.




'지구는 둥그니까, 자꾸 걸어 나가면~'


반응형
  Comments,     Trackbacks
프로프의 민담형태론
반응형



민담 형태론(Морфология сказки, Morphology of the tale)



  러시아 학자 블라디미르 프로프(1895~1970)가 러시아 민담을 분석해 공통점을 정리한 1928년 저서. 민담 속 기능 31가지를 분류해 냈으며, 현재는 연구자뿐 아니라 줄거리를 만들고 싶은 사람이 읽는 책이 되었다. 물론 모든 민담, 모든 이야기가 프로프의 연구에 부합하지는 않으며, 프로프의 연구를 본다고 이야기가 뚝딱 나오지는 않을 것이다.



민담의 31가지 기능



  프로프는 러시아 민담에서 31가지 기능을 발견했다. 한 이야기에 31가지가 전부 들어가라는 법은 없다. 프로프는 각 기능에 알파벳 상징을 부여했지만, 여기선 쓰지 않는다.


1. 부재 : 주인공과 같은 집단이거나 가종 중 하나가 나가고 없다. 친밀한 관계가 나눠지면서 초반 긴장감을 만든다. 그 구성원은 훗날 구출해야 할 수도 있다.


2. 금지 : 주인공한테는 해서는 안 되는 행동이나 가면 안 되는 장소가 있다.


3. 위반 : 일부러든 실수든 주인공이 금기를 어긴다. 대개 그 결과로 악당이 등장한다.


4. 탐색 : 악당(보통 변장한)이 정보를 찾으려 한다. 변장하고 속임수를 써서 순진한 사람에게 접근해 정보를 얻고자 한다. 주인공한테 다가가 주인공의 힘을 시험해 보기도 한다.


5. 누설 : 악당이 희생자에 대한 정보를 얻는다.


6. 속임수 : 악당이 희생자/희생자 소유물을 얻으려 희생자를 속이려 든다. 일부는 속이지 않고 인질 등을 잡아 협박한다.


7. 공모 : 희생자가 속거나 어쩔 수 없이 악당을 돕는다.


8. 가해 : 적이 가족 구성원을 해치거나 훔치거나 납치하거나 재산을 망친다.

  8-a) 결여 : 가족 구성원이나 주인공이 무언가 부족하거나, 무언가를 갖고 싶어한다.


9. 중개 : 불행이나 결여가 알려지고, 주인공에게 요청이나 명령이 오면서, 주인공이 파견되거나 출발이 허락된다.


10. 반작용 : 주인공이 문제 해결을 고민한다. 여기서 주인공의 의지가 결정된다. 모험을 거절하거나 수용한다.


11. 파견 : 주인공이 집을 떠난다.


12. 증여자의 첫 기능 : 주인공이 시험/심문/공격 등을 받으며 마법 도구나 조력자를 얻는 발판을 마련한다.


13. 주인공의 반응 : 주인공이 미래의 증여자의 행동에 반응한다. 시험을 버텨내거나 시험에 떨어진다. 포로를 풀어주거나 선행을 하고, 분열하는 팀을 다시 이어붙인다. 이 부분에서 악당의 능력과 힘을 이해해서 역이용하기 시작하기도 한다.


14. 마법 도구 획득 : 주인공이 선행한 대가로 마법 도구를 얻는다. 험한 환경을 헤치고 직접적으로 찾을 수도 있고, 사거나 귀한 자원으로 교환할 수도 있으며 주인공이 지닌 재료나 물건을 조합할 수도 있다. 다른 세계에서 소환되거나 먹는 마법 음식일 수도 있고, 물건이 아닌 충성심이나 도움일 수도 있다.


15. 안내 : 주인공은 결정적인 장소로 이동하거나 이동된다. 마법 도구를 주는 장소거나 악당이 있는 곳일 수도 있다.


16. 투쟁 : 주인공과 악당이 만나 직접적으로 싸운다.


17. 낙인 : 주인공이 표지를 받는다. 특이한 상처, 반지나 스카프처럼 장식물이다.


18. 승리 : 적이 패배한다.


19. 청산 : 최초 불행, 부족이 해소된다. 원하던 물건을 찾는다. 마법이 깨진다. 포로가 풀려난다.


20. 귀환 : 주인공이 집으로 돌아오는 여정을 시작한다.


21. 추적 : 주인공이 추적당한다.


22. 구조 : 주인공이 추적에서 벗어난다. 무언가 추적자를 막거나 주인공이 변신하거나 숨는다. 누군가 주인공을 구한다.


23. 몰래 도착 : 주인공이 도착한다. 모험길 도중에 있는 곳, 목적지, 알 수 없는 곳이다.


24. 근거 없는 주장 : 가짜 주인공이 거짓말을 하거나 속임수를 쓴다. 가짜 주인공은 악당이거나 악당의 수하일 수 있다. 심지어 가짜 주인공은 미래의 기여자일 수도 있다.


25. 난제 : 주인공에게 어려운 과제가 부여된다.


26. 해결 : 주인공이 과제를 해결한다.


27. 인지 : 17번 낙인에서 얻은 물건 등으로 주인공이 주인공임이 확인된다.


28. 폭로 : 가짜 주인공/적의 정체가 드러난다.


29. 변신 : 주인공에게 새로운 모습으로 변한다. 나이를 먹거나 건강이 나아진다. 외모가 좋아진다.


30. 처벌 : 악당이 벌을 받는다. 주인공, 희생자의 손에 벌을 받기도 하나, 자기 음모에 스스로 휘말릴 수도 있다.


31. 결혼 : 주인공이 결혼하고 집단 내 지위가 상승한다. 일반적으로 왕에 오른다.


  줄거리 창작에서 보면, 11번부터 본격적인 이야기가 시작되며 보통 20번 즈음에 이야기가 끝난다. 주인공이 악당을 물리치며 이야기가 끝나지 않는 것이 특이하다.



캐릭터



  프로프는 기능뿐 아니라 인물도 분류했다. 인물은 크게 7가지로 나뉜다.


1. 악당 - 주인공이 싸우게 만든다.

2. 파견자 - 주인공이 모험할 필요성을 제시하며 주인공을 보낸다.

3. 도우미 - 모험을 돕는다.

4. 공주/상/공주의 아버지 - 모험을 마친 주인공이 얻어야 마땅하다.

5. 기여자 - 주인공에게 마법 도구, 힘 등을 준다. 주인공을 시험하기도 한다.

6. 주인공 - 의뢰자와 기여자와 반응하고 악당을 물리치고 문제를 해결해 공주와 결혼한다.

7. 가짜 주인공 - 주인공을 사칭해 공주와 결혼하려 한다.



  한 사람이 여러 인물을 맡기도 한다.(예 : 공주를 구하도록 상금을 건 왕은 파견자이자 공주의 아버지가 된다) 또 한 인물에 속하더라도 줄거리가 진행되며 다른 인물로 소속이 바뀔 수 있다. 창작자로서 이걸 참고해 마음대로 캐릭터를 만들어 보자.

반응형
  Comments,     Trackbacks
드 무아브르의 정리
반응형



드 무아브르의 정리

(De Moivre's formula/theorem)




18세기 프랑스 수학자 아브라함 드 무아브르(Abraham de Moivre)가 발견한 공식.

복소수와 삼각함수 사이의 관계를 보여준다.




공식



$(\cos \theta + i\sin \theta)^n = \cos(n\theta) + i\sin(n\theta)$




증명




귀납법으로 증명


1) n=1일 때


$\cos\theta + i\sin\theta = \cos\theta + i\sin\theta$

로 성립


2) n이 성립할 때 n+1이 성립함을 증명


n일 때

$(\cos \theta + i\sin \theta)^n = \cos(n\theta) + i\sin(n\theta)$

이 성립한다면


$(\cos \theta + i\sin \theta)^{n+1}$


$=(\cos \theta + i\sin \theta)^n \times (\cos \theta + i\sin \theta)$


$=(\cos(n\theta) + i\sin(n\theta))(\cos\theta + i\sin\theta)$


$=\cos(n\theta)\cos\theta-\sin(n\theta)\sin\theta + i(\cos(n\theta)\sin\theta+ \sin(n\theta)\cos\theta)$


$=\cos(n+1)\theta + i\sin(n+1)\theta$



응용


$z^n$을 만족하는 복소수 방정식의 해는

복소평면 위 정n각형 꼭지점이 된다.


$(\cos \theta + i\sin \theta)^n$


$=\cos(n\theta)+i\sin(n\theta)=1$


$\theta= 2k\pi/n$

반응형
  Comments,     Trackbacks
티스토리 표 가운데 정렬하기
반응형





티스토리 좋아합니다. 표도 만들기 쉬워요.

그런데 표 위치를 정렬하기는 어렵습니다.

표에 스크롤 대고 '가운데정렬' 누르면 될 것 같은데

안 그렇습니다.


표를 가운데에 두려면

HTML 창에 들어가서 조작해야 합니다.



글쓰기 창에서 오른쪽 위

'HTML'을 체크합니다.





복잡한 글이 나타납니다.

CTRL + F로 탐색을 켜고

'table'을 찾습니다.





표는 <table.. 로 시작해

</table>로 끝납니다.



표를 가운데로 만드려면

<table... 앞과

</table>뒤에 문구를 넣어야 합니다.

이렇게요.




<div align="center">

<table ...>


~~~


</table>

</div>





table 태그 앞뒤로 저걸 붙여넣으면

표가 가운데로 정렬됩니다.



어렵지는 않은데,

티스토리가 표 정렬 기능도 만들어줬으면 합니다.

반응형
  Comments,     Trackbacks
잉여류, 완전잉여계, 기약잉여계, 원시근
반응형



잉여류(Residue class)



 

잉여류는 정수 a와 법 m에 대해 합동인 모든 정수의 집합이다.




예를 들어서 5를 3으로 나누면 2가 남는다.

3으로 나누어 2가 남는 수는 또 뭐가 있을까?

8, 11, 14...가 있다.

즉 이들 수는 '3처럼 5로 나누어 2가 남는 수'라고 말할 수 있으며

'3의 법 5에 대한 잉여류/합동류'라고 표현하며

a 위에 작대기를 그어 표현한다.


$\bar{a}$




완전잉여계(Complete Residue System)



 

$\{a_1, a_2, \dots , a_m \}$에서

$a \equiv a_i \pmod{m}$인 $a_i$가 유일하게 있을 때,

$\{a_1, a_2, \dots , a_m \}$를 완전잉여계라고 한다.




잉여류는 a와 m, 두 숫자가 있으면 정해진다.

m=10이라고 하자. a가 뭐가 되었든

잉여류는 10가지 중 하나다.

0이 남는 수들, 1이 남는 수들, 2가 남는 수들... 9가 남는 수들.


이렇게 법 m에 대한 m 가지 서로 다른 잉여류에서

하나씩 수를 뽑아 만든 집합을

법 m에 대한 완전잉여계라고 한다.


m=10이라면

0이 남는 수 중에는 30,

1이 남는 수 중에는 11,

...

9가 남는 수 중에는 289를 뽑아

완전잉여계를 만들 수 있다.


제일 간단한 완전잉여계는

$\{0, 1, \dots m-1 \}$일 것이다.




기약잉여계(Reduced Residue System)



 

$\{a_1, a_2, \dots , a_m \}$가 법 m에 대한 완전잉여계일 때,

여기서 m과 서로소인 원소만 모은 집합을

법 m에 대한 기약잉여계라 한다.



완전잉여계는 일종의 대표선수다.

다들 m으로 나눈 나머지들의 대표다.

나머지가 0인 수들의 대표, 1인 수들의 대표...


완전잉여계가 하나 나오면

이 수 중에 m과 서로소인 것만 남기자.


예를 들어 법 4에 대한 완전잉여계가

{4, 17, 10, 35}라고 하면

기약잉여계는

{17, 35}다.

(*참고로 0은 서로소가 아니다)


m이 소수라면

완전잉여계가 곧 기약잉여계다.


기약잉여계의 원소 수는

오일러 파이 함수와 같다.

(오일러 파이 함수가 'n보다 작으며 서로소인 수의 개수'니 당연할지도.)


2보다 큰 m에 대한 기약잉여계에서

원소를 모두 더한 수는 m에 맞아떨어진다.




원시근(Primitive Root)




원시근

n과 서로소인 모든 수를 법 n에 대한 거듭제곱으로 나타내는 수



어떤 기약잉여계가 있다.

이때 이 기약잉여계의 모든 원소를 어떤 수의 거듭제곱으로 표현할 수 있다면,

그것을 원시근이라고 한다.



예를 들어 법 7이 있다.

7에 대한 완전잉여계는 {0, 1, 2, 3, 4, 5, 6}이다.

7은 소수이므로 기약잉여계는 {1, 2, 3, 4, 5, 6}이다.

법 7에 대한 원시근은 3인데, 3의 거듭제곱으로

모든 기약잉여계 수들을 합동식으로 쓸 수 있기 때문이다.


3^6 = 729 - 7로 나누어 1이 남는다.

3^2 = 9 - 7로 나누어 2가 남는다.

3 = 3 - 7로 나누어 3이 남는다.

3^4 = 81 - 7로 나누어 4가 남는다.

3^5 = 243 - 7로 나누어 5가 남는다.

3^3 = 27 - 7로 나누어 6이 남는다.


한 법에 대해 원시근은 없을 수도 있고, 여럿일 수도 있다.

(5도 법 7에 대한 원시근이다)




원시근 찾기



원시근을 찾는 특별한 공식은 아직 없지만,

일일이 찾는 것보다는 빨리 찾는 법이 있다.


첫째, 원시근이 존재할 조건


우선 원시근은 오직 m이

2, 4, $p^k$, $2p^k$일 때만 존재한다.

(p는 홀수 소수, 즉 2를 뺀 소수)

2, 3, 4, 5, 6, 7, 9, 10, 11, 13...가 원시근이 있다.




둘째, 다른 원시근 찾기


m보다 작으며 m과 서로소인 수의 개수, $\varphi (m)$을 구한다.

$\varphi (m)$와 서로소인 수 k를 구한다.

원시근 g가 존재한다면,

$g^k$도 원시근이다.


$\varphi (m)$와 서로소인 수 k는 $ \varphi (\varphi (m))-1$개가 존재하므로

원시근은 g를 포함해 $ \varphi (\varphi (m))$개가 존재한다.

(만약 존재한다면)

반응형
  Comments,     Trackbacks
개나 소나 이해하는 중국인의 나머지 정리(3부)
반응형

1부 보러가기

2부 보러가기


항구로 돌아가자.

3으로 나누어 2가 남고, 5로 나누어 3이 남고, 7로 나누어 2가 남는 수는 무엇일까?


검은 세단 뒷좌석에 앉아 고민하던 사장은 불현듯 손뼉을 친다.


"맞아, 그거야!"


"뭡니까?"


부하는 사장의 말에 귀를 기울인다.





"화물차 세 대에 상자를 쌓는다고 생각해 봐.

3 상자씩 나누면 2가 남는다고 했으니까, 첫 화물차는 3의 배수에 2를 더한 만큼 쌓자.

나머지 두 화물차는 3으로 딱 나뉘게 3개씩 쌓는 거야.

그럼 3으로 나눈 나머지는 첫 화물차만 신경 쓰면 되겠지."





"그럼 다섯 상자, 일곱 상자씩 쌓는 건 어떡합니까?"


"끝까지 들어 봐!

두 번째 화물차에는 5의 배수에 3을 더한 만큼 쌓되, 첫 번째와 세 번째 화물차에는 5의 배수만큼 쌓는 거야.

세 번째 화물차에는 7의 배수에 2를 더한 만큼 쌓되, 첫 번째와 두 번째 화물차에는 7의 배수만큼 쌓자고."




"화물차마다 조건이 제각각이지 않습니까?"


"그래!

하지만 무식하게 세 조건에 맞는 수를 일일이 찾는 것보다는 쉽겠지.

이제 보라고.

첫 화물차에 쌓는 상자 수는 3으로 나누어 2가 남고, 5의 배수고, 7의 배수야.

5의 배수면서 7의 배수는 곧 35의 배수니까, 35 배수 중에 3으로 나누어 2가 남는 수를 알아보면 되겠지."


"35가 3으로 나누어 2로 남습니다."


"그럼 첫 화물차에는 35상자가 있다고 치자고.

두 번째 화물차 상자 수는 3의 배수, 5로 나누어 3이 남는 수, 7의 배수야.

3*7=21의 배수 중에 5로 나누어 3이 남는 수는 얼마지?"


"63입니다."


"마지막 세 번째 화물차도 같은 식이야.

15의 배수 중에 7로 나누어 2가 남는 수는?"


"30입니다."





"그럼 이제 세 화물차 상자 수를 더하면 돼.

35 더하기 63 더하기 30은 128야. 23뿐 아니라 128도 답인 거지."





"더하면 배수가 아니게 되지 않습니까?"


"바보야. 그러니까 네가 내 밑에서 일하는 거다.

배수끼리는 아무리 더해도 배수란 말이야.

16은 4가 네 조각, 24는 4가 여섯 조각이지?

그럼 합치면 결국 열 조각. 더한 것도 4의 배수가 된다.


두 번째 화물차와 세 번째 화물차는 3의 배수다.

그러니 둘은 합쳐도 3의 배수야.

거기에 3으로 나누어 2가 남게 첫 화물차를 채웠으니,

셋을 합치면 2가 남을 수밖에 없는 거지.

이런 식으로 세 조건을 모두 만족하는 수를 구할 수 있다고."


"그런데 사장님. 만약 128상자보다 많으면 어떻게 합니까?"


"쉽지. 아무 화물차나 수를 키우면 돼.

첫 화물차가 35상자였지? 35의 배수 중에 3으로 나누어 2가 남는 수가 또 뭐 있지?"


"140입니다."


"그럼 35 대신에 140을 넣으면 되지. 그럼 128이 아니라 233상자겠군."









연립1차합동방정식 풀기




  사장, 머리도 좋다. 세 조건을 모두 만족하는 수를 손으로 구하기란 여간 힘든 일이 아니다. 그러니 수를 셋으로 나누어 문제를 쉽게 풀어낸 것 아닌가. 이 정도면 문제를 다 풀었다고 봐도 좋다. 그러나 아직 '수학적'이지 못하다. 


  어떻게 '수학적'일 수 있을까?


  이 문제는 일차합동식 셋으로 표현할 수 있다.


$x \equiv 2 \pmod{3}$

$x \equiv 3 \pmod{5}$

$x \equiv 2 \pmod{7}$


  이 세 식을 만족하는 x를 구하라, 이 말이다. 방정식이 여럿 있는 문제는 연립방정식이라 부른다. 그럼 합동방정식이 여럿 있는 문제는 뭐라고 부를까? 맞다. 연립합동방정식이다. 1차니까 굳이 길게 부르자면

연립1차합동방정식이다.


 연립1차합동방정식


$x \equiv a_1 \pmod{m_1}$

$x \equiv a_2 \pmod{m_2}$

$\dots$

$x \equiv a_n \pmod{m_n}$

(* 단 m들은 자기들끼리 전부 서로소라는 조건을 붙이자. 아니라면 좀 어려워지니까.)





  어찌 보면 사장과 5세기 손자가 고민한 문제는 연립1차합동방정식 그 자체인데, 연립1차합동방정식(쓰기도 힘들다)은 어떻게 풀까?



연립1차합동방정식을 푸는 법


  놀랍게도 이 문제를 푸는 방법은 사장이 생각한 '화물차 방법'과 비슷하다.


$x= \square_1 (m_1 * m_2 \dots m_n)$ 

$+ \square_2 (m_1 * m_3 \dots m_n)$

$+ \dots+$

$+ \square_n (m_1 * m_2 \dots m_{n-1})$


  라고 놓는다. 항마다 m을 하나만 빼고 전부 곱한 값을 넣는 것이다.

예를 들어 $x$를 $m_1$으로 나눈다면 첫 항 빼고는 전부 나누어떨어진다. 그럼 첫 항을 $m_1$으로 나누어 $a_1$가 남게 하는 $\square_1$ 두 번째 항은$m_2$로 나누어 $a_2$가 남게 하는 $\square_2$... 를 전부 구해야 한다. 이번에도 '수학적'일 순 없을까?


  아이디어가 없으면 빌리거나 훔쳐라. 많은 자기개발서에 나오는 말이다.


  자기개발서가 좋든 싫든, 프랑스 수학자 에티엔 베주Etienne Bezout의 아이디어를 하나 가져오자. 




  베주가 만든 베주 항등식이 있다. 두 정수의 최대공약수를 두 수의 배수의 합으로 나타낼 수 있다는 공식이다. 만약 두 정수가 서로소라면, 즉 공약수가 1뿐이라 최대공약수도 1이라면 공식은 이렇게 바뀐다.


'1을 두 서로소인 수의 배수 합으로 나타낼 수 있다.'


  $m_1, m_2 \dots m_n$은 자기들끼리 전부 서로소다. 이들 중 두 수를 아무리 잡아도 서로소라는 말이다. $m_k$와 $m_k$를 뺀 나머지를 전부 곱한 값도 서로소다.


  $m_k$를 뺀 나머지를 전부 곱한 값을 $n_k$라고 부르자. $m_k$와 $n_k$는 서로소다. 그럼 베주님의 가르침에 따라 1을 '$m_k$와 $n_k$의 배수의 합'으로 나타낼 수 있다.


$1 = \vartriangle m_k + \blacktriangle n_k$

$\vartriangle m_k + \blacktriangle n_k = 1$


  근데 이런 식, 어디서 많이 봤다. 바로 디오판토스 방정식이다. x와 y가 △와 ▲가 되었을 뿐. 디오판토스 방정식은 합동식과 거의 한 몸이니, 합동식으로도 쓸 수 있다.


$\blacktriangle * n_k \equiv 1 \pmod{m_k}$


  x에서 값마다 곱하던 \square는 바로 $a_1*\blacktriangle$이다. 왜 그럴까? 예를 들어 첫 항은 $a_1*\blacktriangle*n_1$이 된다. 이게 과연 $m_1$으로 나누어 $a_1$이 남는지 보자.


  $\blacktriangle*n_1$은 $m_1$으로 나누어 1이 남는다.(바로 위에 식이 있다) 그럼 $\blacktriangle*n_1 = m_1*k + 1$이다. $a_1*\blacktriangle*n_1=a_1*(m_1*k + 1) = a_1*m_1*k + a1$인데

$a_1*m_1*k$은 $m_1$으로 나누어떨어지므로 나머지는 $a_1$이 된다!

이는 나머지 항에도 다 적용되므로, 이제 방정식의 답 x를 거의 구한 셈이다.



$x= a_1n_1s_1 + a_2n_2s_2 + ... + a_n*n_n*s_n$

(▲는 '수학적'으로 s라 부른다)


그런데 답은 하나가 아니었다. 23도 됐고 128, 233도 되었다. 128-23은 105, 233-128도 105. 간격은 105인 것 같은데…. 105는 3,5,7의 최소공배수다. 그렇다. 최소공배수를 더하면 $m_1, m_2 \dots ,m_n$에 모두 나누어떨어지므로 x를 나눈 나머지를 방해하지 못한다!



 $x=$

$a_1n_1s_1 + a_2n_2s_2 + \dots + a_n*n_n*s_n + (m_1,m_2...m_n의 최소공배수)*k$



  그러나 우리는 합동식을 배웠기에 더 멋지게 쓸 수 있다.



$x\equiv a_1n_1s_1 + a_2n_2s_2 + \dots + a_n*n_n*s_n \pmod{m_1*m_2*\dots*m_n}$


라고….



해답



  그렇다면 이제 문제는 풀린다.


$x \equiv 2 \pmod{3}$

$x \equiv 3 \pmod{5}$

$x \equiv 2 \pmod{7}$


$a_1 = 2, a_2 = 3, a_3 = 2$이며

$m_1 = 3, m_2 = 5, m_3 = 7$이며

$n_1 = m_2*m_3 = 35$

$n_2 = m_1*m_3 = 21$

$n_3 = m_1*m_2 = 15$다.


  다주와 디오판토스의 합작에 따라 $s_k * n_k \equiv 1 \pmod{m_k}$니까 $s_1 * 35 \equiv 1 \pmod{3}$, 35의 배수 중에 3으로 나누어 1이 남는 수는 70이므로 $s_1=2$다.


  이런 식으로 전부 구하면 $s_2=1, s_3=1$이다.



  물론 s는 이것보다 클 수 있다. 사실, $s_1$을 80으로 $s_2$를 125 같은 숫자로 넣어도 상관은 없다. 어차피 연립1차합동방정식의 해는 뒤에 $\pmod{m_1*m_2*m_3…}$가 붙을 예정이다. 따라서 $m_1*m_2*m_3…$ 보다 작게 조절할 것이므로 이왕이면 처음부터 s를 작게 잡으면 좋을 것이다.


이제 s도 구했으니 답을 알아보자.


  $a_1n_1s_1 + a_2n_2s_2 + \dots + a_n*n_n*s_n \pmod{m1*m2*m3\dots}$는 $2*35*2 + 3*21*1 + 2*15*1 \pmod{3*5*7}$이고 즉 $x \equiv 233 \pmod{105}이 나온다.


  105로 나눈 나머지가 233일 수는 없으니까 233에서 $105*2=210$을 빼면 $x\equiv23 \pmod{105}$이 된다. 한 마디로 x는 105의 배수에 23을 더한 수가 되어 23, 128, 233… 이 되는 것이다.



또 다른 해?




그런데 잠깐. 과연 우리가 구한 이 해가 유일한 해일까?

$35x \equiv14 \pmod{21}$도 해가 $x \equiv 1, 4, 7, 10, 13, 16, 19 \pmod{21}$로 다양했다. 


  상상력을 발휘해 보자. x말고 y라는 해가 또 있다고 상상하는 것이다. 그럼 $x\equiv a_k \pmod{m_k}이고 $y\equiv a_k \pmod{m_k}$다.


합동식 성질 2번에 따라

$a_k \equiv y \pmod{m_k}$며,

합동식 성질 3번에 따라

$x \equiv a_k \equiv y \pmod{mk}$ 즉

$x \equiv y \pmod{mk}$가 성립된다.


합동실 성질 4번에 따라

$x-y \equiv ak - ak \pmod{m_k}$,

$x-y \equiv 0 \pmod{m_k}$다. 즉 $x-y$는 $m_k$로 나누어떨어지는 배수다.

$m_1$의 배수기도 하고 $m_2$의 배수기도 하고…….


최소공배수와 관련한 정리

'm이 a, b, c...의 배수면

m은 a, b, c..의 최소공배수의 배수다'

에 따라


$x-y$는 $m_1, m_2, \dots $의 배수이므로

$x-y$는 $m_1, m_2, \dots $ 의 최소공배수의 배수다

$x-y \equiv 0 \pmod{lcm(m_1, m_2\dots)}$

*LCM : 최소공배수


$m_1, m_2, m_3 \dots $는 모든 쌍에 서로소니까


또 다른 정리

'a, b, c...중 어떻게 두 숫자를 뽑아도 전부 서로소면

$a*b*c...$는 $a, b, c...$의 최소공배수다'

에 따라


$m_1, m_2, m_3\dots$의 최소공배수는 m들의 곱이다.

$x-y \equiv 0 \pmod{m_1*m_2*m_3\dots}


$y\equiv y \pmod{m_1*m_2*m_3\dots}인데,

(합동식 1번 규칙에 따라 자기 자신과는 무조건 합동)


  두 식을 더하면 $x \equiv y \pmod{m_1*m_2*m_3\dots}$다.

순서를 바꾸면 $y \equiv x \pmod{m_1*m_2*m_3 \dots}$다.

$x\equiv a_1n_1s_1+a_2n_2s_2+\dots+a_n*n_n*s_n \pmod{m_1*m_2*m_3\dots}$였는데

연결하면 $y\equiv a_1n_1s_1+a_2n_2s_2+\dots+a_n*n_n*s_n \pmod{ m_1*m_2*m_3\dots}$이다.


똑같다.

  즉, 다른 해는 x와 같다. 그러니까 해는 x뿐이다. 이로써 이런 문제는 해가 한 종류뿐임을 증명했다.






중국인의 나머지 정리


  지금까지 배운 모든 과정은 중국 책에서 처음 나왔다고 해서 중국인의 나머지 정리라고 부른다.



 중국인의 나머지 정리

(Chinese remainder theorem)


$m_1, m_2... m_n$이 모든 쌍에 서로소라면

$x\equiv a_1 \pmod{m_1}$

$x\equiv a_2 \pmod{m_2}$

$\dots$

$x\equiv a_n \pmod{m_n}$

인 연립합동방정식은

$\pmod{m_1*m_2\dots m_n}$에 유일한 해를 지닌다.

(해가 있다(존재성) + 하나다(유일성))




원래 풀이


  그럼 이 문제가 처음 나온 5세기 손자산경은 이걸 어떻게 풀었을까?


  "셋씩 세어 둘이 남으면 140을 적는다. 다섯씩 세어 셋이 남으면 63을 적는다. 일곱씩 세어 둘이 남으면 30을 적는다. 이들을 더해 233이 되고, 210을 빼면 답을 얻는다. 마찬가지로 셋씩 세어 하나가 남으면 70을 적는다. 다섯씩 세어 하나가 남으면 21을 적는다. 일곱씩 세어 하나가 남으면 15를 적는다. 합이 106보다 크므로 105를 빼면 답을 얻는다."


  3으로 나누어 2가 남으면서 5와 7로는 나누어떨어지는 수를 찾는다.

→ 140

  5로 나누어 3이 남으면서 3과 7로는 나누어떨어지는 수를 찾는다.

→ 63

  7로 나누어 2가 남으면서 3과 5로는 나누어떨어지는 수를 찾는다.

→ 30


  식으로 옮기면

$140\equiv2 \pmod{3}, \equiv0 \pmod{5},\equiv0 \pmod{7}$

$63\equiv0 \pmod{3},\equiv3 \pmod{5},\equiv0 \pmod{7}$

$30\equiv0 \pmod{3}, \equiv0 \pmod{5},\equiv2 \pmod{7}$

  가 된다.


  합동식 성질 4번에 따라 법(mod 뒤에 있는 수)이 같다면 식을 통째로 더할 수 있으니


세 식을 다 더하면

$140+63+30$

$\equiv 2+0+0 \pmod{3},$

$\equiv0 \pmod{5},$

$\equiv2 \pmod{7}$


  $233 \equiv 2\pmod{3},\equiv3\pmod{5}, 2 \pmod{7}$으로 식을 만족한다. 다만 $3*5*7=105$보다 크므로 두 번 빼서 23으로 만들 수 있다고 저 책은 말하고 있다.


  5세기 중국인이 ≡ 같은 식이나 디오판토스, 베주 같은 사람을 알았을 리는 없다. 아마 손자는 우리 사장과 같은 방식으로 문제를 푼 것 아니었을까.

반응형
  Comments,     Trackbacks