[목차] == 수학 용어 == [include(틀:수와 연산)] [include(틀:진법)] * [[수학 관련 정보]] {{{+1 [[進|{{{#000000,#e5e5e5 進}}}]][[法|{{{#000000,#e5e5e5 法}}}]] / base ''N'' ・ radix}}} '''''N''진법'''은 수를 셀 때, 자릿수가 올라가는 단위를 기준으로 하는 셈법의 총칭이다. '위치적 기수법'이라고도 한다. === 양수 진법 === 일반적으로는 [[10진법]]을 주로 사용하며, 시계는 12진법과 [[60진법]]의 조합, [[컴퓨터]]는 [[2진법]]과 [[16진법]][* 하지만 16진법은 인간이 읽기 쉽도록 2진법의 4자리를 묶어 1자리로 쓰는 것이기 때문에 때문에 컴퓨터는 실질적으로 2진법만 처리한다고 보면 된다.] 또는 '''[[http://news.mtn.co.kr/v/2019071716573161004|3진법]]''' 등이 이용된다. 또한 [[암호학]]에서는 [[알파벳|26진수]]가 사용되기도 한다. 고대 메소포타미아가 60진법을 사용하였다고 하는데, 이는 천문학에 뛰어나서 일찍부터 1년이 약 360일이라는 것을 발견하고 이를 효과적으로 나타낼 수 있는 진법이 60진법이므로 60진법을 사용했다는 설이 유력하다. 12진법은 [[약수(수학)|약수]]로 2, 3, 4, 6을 가져 매우 다양하게 나눌 수 있지만 5가 없어서, 5를 추가하여 60진법을 만들면 큰 숫자를 2, 3, 4, 5, 6으로 다양하게 나눌 수 있기 때문이다. 즉, 하루나 1년을 원하는 갯수로 분할해서 [[정수]]로 표기하는 게 가능하다. 또 [[마야 문명]]에서는 20진법이 사용되었다고 한다. [[유럽]]권에서는 20진법이 흔하게 사용되었다. 영어와 독일어 등에서 11~19까지의 단어가 20 이상의 숫자처럼 10+1의 자리 숫자로 구성되지 않고 별도의 이름이 있는 것도 그 잔재이다. [[프랑스]]에서는 40이나 60은 그대로 40과 60으로 읽는 것에 반해 80만큼은 특이하게도 [math(4\times20)]으로 읽는 관습이 남아 있다.[* [[스위스|프랑스 주변 지역]]의 [[프랑스어]]에서는 [[https://youtu.be/CoqOTloh7ds?feature=shared&t=69s|별도의 표현을 쓴다.]]] 덴마크어에서는 50이상의 십의 자리 숫자는 모두 20진법으로 표기한다. 예를 들어 90은 halvfems라고 표기하는데, halv는 반, fem은 5이고 s는 곱한다는 것을 줄인 말이다. 따라서 [math((-\frac{1}{2}+5) \times 20)]이라고 읽는 것이다. 그냥 반이라고 읽어도 빼기가 되는 것은 과거 유럽어에서 낮은 단위의 숫자를 높은 단위의 숫자 앞에서 쓰면 그만큼을 빼는 관습이 있었기 때문이다.[* 로마 숫자 4(IV)는 5(V) 앞에 표기한 1(I)만큼 뺀 기호로, 9(IX)는 10(X) 앞에 표기한 1(I)만큼 뺀 기호로 표기하는 것으로도 이를 알 수 있다.] 라틴어에서도 29는 [math(20+9)]로 읽을 수 있었지만 [math((-1)+30)]으로도 읽을 수 있었고, 독일어에서 시간을 읽을 때 반 4시라고 읽으면 3시 30분이 되는 것 등에서 알 수 있다. [[크메르어]]는 '''5진법을 사용한다.''' 야구에서는 투수의 소화 이닝 수를 표기할 때 10진법과 3진법의 조합을 쓴다. 투수의 소화 이닝 수는 그 투수가 잡은 아웃카운트에서 3을 나눈 값으로 구하는데 예를 들어 8개의 아웃카운트를 잡았을 경우 [[대분수]]를 써서 2⅔이닝(2와 3분의 2이닝) 식으로 표현하는 게 정석이지만, 표기의 편의를 위해 1이닝 미만은 소수 첫째 자리로 점으로, 예를 들어 2.2이닝처럼 표기하기도 한다. 여기서 소수점 아래 부분이 바로 3진법으로 쓰이는 부분이다. [[사우디아라비아 리얄]], [[파운드 스털링]]은 과거 10진법과 20진법의 조합을 사용하였다. 1리얄 이하의 금액을 사용할때 키르시(Qirsh)를 사용하였는데, 1리얄=20키르시 였다. [[1960년]]부터는 1리얄=100할랄라로 개정해 완전한 10진법 화폐가 되었다. 영국 또한 1파운드 이하의 금액을 사용할 때 실링(Shilling)을 사용하였는데, 1파운드=20실링이였다. 현재는 1파운드=100페니로 개정해 완전한 10진법 화폐가 되었다. 흔히 생각하는 자연수 진법에서는 밑(base)으로 2 이상의 모든 정수를 사용할 수 있다. [[프로그래밍]]에서는 2진법과 10진법, 16진법 이외에 다음 진법도 가끔 사용한다. 이들 진법은 프로그래밍 언어나 환경에 따라 각각 다르기 때문에 정식이라기보다는 임의로 사용되는 쪽에 가깝다. 일반적인 범위에서 쉽게 찾아볼 수 있는 곳이 단축 URL 표기. 기호는 사실 뭘 써도 크게 상관없지만 주로 0~9와 부족한 것은 알파벳 등으로 대체한다. * ~~Unary[* 또는 base 1](단항 기수법)~~[* 진법이라 보기에는 애매하다. 이것과 비슷한 체계가 [[스프레드시트]]의 열 표기인데 단항 기수법에서 기호가 26개로 늘어난 버전이라 볼 수 있다.]: 0 이상의 정수에 대해 같은 기호(주로 숫자 1)를 그 수만큼 반복해서 표기하는 진법. 예를 들어 5라면 11111이 되는 식이다. 즉 1이 더해질 때마다 자릿수가 1씩 증가한다. 소수 표시도 불가능해서 어디다 쓸까 싶지만[* 더해서 진법이 0에 가까워지면 작은 수를 표현하는 데에도 써야 하는 기호가 매우 많이 필요하며, 0진법이면 아예 '''0이나 무한소가 아닌 다른 임의의 수를 표시하려면 무한대가 되어버린다.''' 음수 진법의 경우 그렇지는 않다. 어디까지나 0진법에 가까워질수록 특정 수를 표현하는데 필요한 기호가 무진장 늘어나기 때문. 만약 무한 진법일 경우 큰 수를 표현하는 것마저도 0이나 무한소가 되어버린다.(...)] 초등학교 저학년 때 쓰는 산가지를 이용한 셈법이나 1~5까지를 '正'의 획순대로 쓰는 것 또한 1진법에 포함된다. 한자의 경우 1~3까지 1진법으로 표현된다.(一二三) * ternary[* 또는 base 3](3진법): 0, 1, 2를 사용하는 진법. [[칸토어 집합]]을 다루다 보면 자주 접하게 된다. '''현존 최악의 [[난해한 프로그래밍 언어]]인 [[Malbolge]]'''의 인터프리터가 3진법에 기반하고 있다. * base 32(32진법): 숫자 0~9, 알파벳 일부를 사용하는 진법으로 5비트를 한 자리로 표기하기 위한 기법이다. 프로그래밍 언어에 따라 많이 다르다. * base 36(36진법): 숫자 0~9, 알파벳 A~Z를 모두 사용하는 진법으로 6^^2^^이 36이라 두 자리씩 묶은 6진법이기도 하다. * base 58(58진법): 숫자 0~9, 알파벳 대문자 A~Z, 소문자 a~z의 대부분을 사용한다. 이때 혼동을 일으킬 수 있는 숫자 0과 대문자 O, 대문자 I와 소문자 l은 사용하지 않는다. [[비트코인]] 주소 표기에 사용한다. * [[BASE64]](64진법): 숫자 0~9, 알파벳 대문자 A~Z, 소문자 a~z까지 사용한 뒤, 나머지 2자리에 특수문자 +, /를 집어넣어 6비트를 한 자리로 표기하는 기법이다. 가장 널리 쓰이는 기법으로, [[이메일]] 인코딩에 많이 사용된다. 이메일 원본 헤더를 열어보면 알 수 없는 숫자와 알파벳, 특수문자가 마구 섞인 부분을 볼 수 있는데 이것이 Base64로 표기된 것이다. * Ascii85(85진법[* base 85]): 숫자 0~9, 알파벳 대문자 A~Z, 소문자 a~z[* 다만, v, w, x, y는 사용되지 않는데, 그 이유는 u가 84에 해당하는 값이기 때문. z는 [math(00000 = ~!!!!!)]를 나타내는 데 쓴다.]를 모두 사용하다 못해 특수문자도 대거 사용한다. [[아스키 코드]]의 대부분을 사용한다고 해서 Ascii85라는 명칭이 되었다. [[PC통신]] 시절에 많이 사용했던 ZMODEM 프로토콜이 이걸 사용했다. 왜 하필 85냐면 [math(256 \times \frac13)]의 근사치면서 [math(\sqrt[5]{2^{32}})]이 84와 85의 사이에 있기 때문. 즉, 32비트를 5자리의 문자로 나타낼 수 있는 가장 작은 진법이다. === 진법 표현의 존재성과 유일성 증명 === ==== 존재성 ==== 존재성의 증명은 [[나눗셈 정리]]를 이용한다. 양의 정수에 대해서 증명을 하고 이걸 일반적인 정수 전체, 실수, 복소수 등등으로 확장시키는게 일반적. 양의 정수 [math(a, b)]에 대해서, 나눗셈 정리에 의해 [math(q_1, r_1 \in \mathbb{Z})]이 유일하게 존재하여, 다음을 만족한다. * [math(b=aq_1+r_1)](단 [math(0 \leq r_1 < a)]) 이 때, [math(q_1)]이 [math(a)]보다 크다면, 마찬가지 과정을 통해서 [math(q_2, r_2 \in \mathbb{Z})]가 유일하게 존재하여, [math(q_1=aq_2+r_2)](단 [math(0 \leq r_2 < a)])가 존재하고……를 끝없이 반복하여, [math(q_n, r_n \in \mathbb{Z})]가 유일하게 존재하여, [math(q_{n-1}=aq_n+r_n)](단 [math(0 \leq r_n < a. 0 \leq r_n \leq a)])이 존재함을 알 수 있다. 따라서, [math(a, b)]에 대하여, [math(b)]의 [math(a)]진법 표기는 '''존재한다'''. ==== 유일성 ==== 정수 [math(N)]이 밑수 [math(b)]에 대하여 서로 다른 두가지 이상의 표현방법이 존재한다고 가정하자. 그렇다면, 두 표현방법을 각각 [math(N_1, N_2)]라고 표기하면 다음과 같다. || [math(\displaystyle N_1=\sum_{i=0}^{m}a_{i}b^i=\sum_{i=0}^{m}c_{i}b^i=N_2)] || (서로 다른 자릿수로 표현될 수도 있지만, 그 경우는 해당 자리의 수를 0으로 표기해도 문제되지 않으므로 둘 중 큰 자리수로 표기를 통일한다.) 그러면 위의 식을 이항하여 정리하자. || [math(\displaystyle \sum_{i=0}^{m}a_{i}b^i=\sum_{i=0}^{m}c_{i}b^i)] ---- [math(\displaystyle \sum_{i=0}^{m}(a_{i}-c_{i})b^i=0)] || 여기서 [math(a_i-c_i=d_i)]라고 두자. || [math(\displaystyle \sum_{i=0}^{m}d_ib^i=0)] || 두 표현이 다르다고 했으므로, 적어도 한개의 [math(i)]가 존재하여, [math(d_i\neq 0)]이어야 한다. 그러면 이런 값이 되는 최소의 [math(i)]를 [math(k)]라고 두자. 그러면 [math(\displaystyle \sum_{i=0}^{m}d_ib^i=\sum_{i=k}^{m}d_ib^i=b_k\sum_{i=k}^{m}d_ib^{i-k})]가 된다. 이 마지막 식을 전개하자. || [math(\displaystyle b_k\sum_{i=k}^{m}d_ib^{i-k}=b_k\{d_mb^{k-m}+\cdots+d_{k+1}b+d_k\}=0)] || 이 식에서 [math(d_k)]만을 남기고 정리하여 이항하자. 공통 인수로 묶은 [math(b^k)]는 합이 0이므로 약분해서 없애자. || [math(d_mb^{k-m}+\cdots+d_{k+1}b+d_k=0\\ d_k=-\{d_{k+1}b+\cdots+d_mb^{k-m}\}\\ \quad=-b\{d_{k+1}+\cdots+d_mb^{k-m-1}\})] || 즉 [math(b|d_k)]가 된다. 그런데 진법 표현의 특정상 [math(\forall k \in \mathbb{Z}_{\geq 0})]에 대하여, [math(0\leq a_k, c_k1. [math(\exist m \geq 1)]에 대하여 [math(m! \leq a < (m+1)!)] 2. [math(\exist! c_1, \cdots, c_m \in \mathbb{Z})]에 대하여, [math(\displaystyle a=\sum_{i=1}^{m}c_{i}i!)] [math(\cdots)](●) (단, [math(0 \leq i \leq m-1)]일 때 [math(0\leq c_i \leq i)]이며, [math(1 \leq c_m \leq m)]) || 이 때, (●)의 식을 칸토어 표현이라고 하며, 이는 모든 양의 정수에 대해서 유일하게 표현된다. 즉, 진법이 임의의 밑수(base) [math(p)]에 대하여 그 거듭제곱 꼴의 합으로서 수를 표현한다면, 칸토어 표현은 연속된 [[계승(수학)|팩토리얼]]로서 표현하는 것. 실제로, [[계승(수학)|팩토리얼]]의 성질에 따라 다음 관계식이 성립함은 표현의 유일성을 보증해준다.[* 실제 증명은 나머지 정리를 이용한 진법 표현의 유일성과 존재성 증명과 비슷하며, 본문의 내용은 어디까지나 증명이 아니라 보증일 뿐이다.] * [math(\displaystyle \sum_{i=1}^{n} i\cdot i!=(i+1)!-1)] 또한 이 칸토어 표현을 확장하여, 게오르그 칸토어는 임의의 서수 역시 비슷한 방법으로 표현할 수 있다고 증명했으며, 이를 '''완전 칸토어 표준형(Complete Cantor's Normal Form)'''이라고 부른다. ==== 존재성 ==== 역시 [[나눗셈 정리]]를 이용한다. 다만 과정이 조금 바뀌는데 대략적인 흐름만 소개하면 다음과 같다. * 임의의 양의 정수 [math(b)]에 대하여, [math(n_1! \leq b < (n_1+1)!)]를 만족하는 정수 [math(n_1)]이 존재한다. 이는 [[계승(수학)|팩토리얼]]이 정수를 원소로 가지는 증가하는 단조증가수열이므로 삼일률[* 모든 두 실수는 대소관계를 비교할 수 있다는 것을 의미. 즉, [math(\forall a, b \in \mathbb{R})]은 [math(a>b, a=b, a를 보면 중반 즈음에 [[조인]]의 '팔문금쇄진'이라는 진법이 등장하는데 [[이문열]] 평역에서는 황건란으로 시작된 후한말의 혼란기가 어느 정도 안정되어 오합지졸이 아닌 제대로 훈련된 병사로 진법을 사용한 첫 사례라고 주장하지만 실제로 그랬던 것은 아니다. 사실 [[현대]]에도 이 개념은 여전히 유효하다. [[제식훈련]]을 현재까지도 강조하는 이유 중 하나. [[현대전]]의 소부대 전술에서 사용되는 진법의 종류에 대해서는 [[진형]] 문서에서 상세히 설명되고 있으니 관심이 있다면 해당 문서를 참조할 것. 진법붕괴와 함께 전 병력이 궤멸될정도로 중요하지만 사극에서는 진법이고 뭐고 없이 냅다 돌격만하다 난전으로 끝난다. 실제로 사극처럼 무작정 돌진한다면 [[전멸]]을 면치 못할 것이다. === 조선시대의 병서 === [include(틀:상세 내용, 문서명=진법(병서))] === [[무협소설]]에 등장하는 용어 === 크게 두 가지의 뜻으로 쓰인다. 사실 현실에 존재하는 물리법칙과 기술력, 병력, 작전 등을 이용해 밑에 써있는 두가지[* 적재적소(장소가 마땅치 않으면 인공적으로 만들거나 특정 장소에 적을 끌어들여서라도)에 알맞는 수의 병력을 배치해 알맞는 작전을 통해 적을 친다.]를 조합해서 써먹으면 위 항목의 진법이 된다. 1. 자연물 내지는 인공물을 특정한 방식에 따라 배치하여 특수한 효과를 일으키는 방법의 총칭. <[[삼국지연의]]>에서 [[제갈량]]이 돌을 이용하여 축공했다고 나오는 '석진'이 그 모티브로 보인다. 무협지 세계관에서는 보통 [[귀곡자]]가 유명하다. 1. [[무공]]의 일종. 정확히는 무공의 조합을 통한 협동 공격의 방법론이라고 할 수 있다. 일반적으로 웬만한 대문파면 하나씩은 가지고 있는 듯하다. [[소림사]]의 백팔나한진/십팔나한진, [[개방]]의 타구진 등이 유명하며, 흔히 개나소나 다 쓴다는 '삼재진'등이 있다. [[분류:진법]][[분류:전략전술]][[분류:무공/진법]][[분류:동음이의어]][[분류:조선의 병서]]