최근 수정 시각 : 2024-07-07 03:46:36

진법

1. 수학 용어
1.1. 양수 진법1.2. 표현1.3. 진법 표현의 존재성과 유일성 증명
1.3.1. 존재성1.3.2. 유일성
1.4. 진법 변환
1.4.1. 특수 경우1.4.2. 소숫점 아래 자리 변환
1.5. 실수 진법으로의 확장
1.5.1. 음수 진법1.5.2. 유리수 및 무리수 진법
1.6. 복소수 진법1.7. 칸토어 표현
1.7.1. 존재성
2. 군대 용어
2.1. 조선시대의 병서2.2. 무협소설에 등장하는 용어

1. 수학 용어

연산
𝐍𝐮𝐦𝐛𝐞𝐫𝐬 𝐚𝐧𝐝 𝐎𝐩𝐞𝐫𝐚𝐭𝐢𝐨𝐧𝐬
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)"
{{{#!folding [ 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"
<colbgcolor=#765432> 수 체계 자연수 ( 홀수 · 짝수 · 소수 · 합성수) · 정수 · 유리수 ( 정수가 아닌 유리수) · 실수 ( 무리수 · 초월수) · 복소수 ( 허수) · 사원수
표현 숫자 ( 아라비아 숫자 · 로마 숫자 · 그리스 숫자) · 기수법( 과학적 기수법 · E 표기법 · 커누스 윗화살표 표기법 · 콘웨이 연쇄 화살표 표기법 · BEAF· 버드 표기법) · 진법 ( 십진법 · 이진법 · 8진법 · 12진법 · 16진법 · 60진법) · 분수 ( 분모 · 분자 · 기약분수 · 번분수 · 연분수 · 통분 · 약분) · 소수 { 유한소수 · 무한소수 ( 순환소수 · 비순환소수)} · 환원 불능 · 미지수 · 변수 · 상수
연산 사칙연산 ( 덧셈 · 뺄셈 · 곱셈 구구단 · 나눗셈) · 역수 · 절댓값 · 제곱근 ( 이중근호) · 거듭제곱 · 로그 ( 상용로그 · 자연로그 · 이진로그) · 검산 · 연산자 · 교환자
방식 암산 · 세로셈법 · 주판 · 산가지 · 네이피어 계산봉 · 계산기 · 계산자
용어 이항연산( 표기법) · 항등원과 역원 · 교환법칙 · 결합법칙 · 분배법칙
기타 수에 관련된 사항 ( 0과 1 사이의 수 · 음수 · 작은 수 · 큰 수) · 혼합 계산 ( 48÷2(9+3) · 111+1×2=224 · 2+2×2) · 0으로 나누기( 바퀴 이론) · 0의 0제곱 }}}}}}}}}

진법
Base N
2진법 8진법 10진법 12진법 16진법 60진법
/ base N ・ radix

N진법은 수를 셀 때, 자릿수가 올라가는 단위를 기준으로 하는 셈법의 총칭이다. '위치적 기수법'이라고도 한다.

1.1. 양수 진법

일반적으로는 10진법을 주로 사용하며, 시계는 12진법과 60진법의 조합, 컴퓨터 2진법 16진법[1] 또는 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)]으로 읽는 관습이 남아 있다.[2] 덴마크어에서는 50이상의 십의 자리 숫자는 모두 20진법으로 표기한다. 예를 들어 90은 halvfems라고 표기하는데, halv는 반, fem은 5이고 s는 곱한다는 것을 줄인 말이다. 따라서 [math((-\frac{1}{2}+5) \times 20)]이라고 읽는 것이다. 그냥 반이라고 읽어도 빼기가 되는 것은 과거 유럽어에서 낮은 단위의 숫자를 높은 단위의 숫자 앞에서 쓰면 그만큼을 빼는 관습이 있었기 때문이다.[3] 라틴어에서도 29는 [math(20+9)]로 읽을 수 있었지만 [math((-1)+30)]으로도 읽을 수 있었고, 독일어에서 시간을 읽을 때 반 4시라고 읽으면 3시 30분이 되는 것 등에서 알 수 있다.

6차 교육과정 중학교 1학년 수학은 5진법도 가르쳤다.

크메르어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[4](단항 기수법)[5]: 0 이상의 정수에 대해 같은 기호(주로 숫자 1)를 그 수만큼 반복해서 표기하는 진법. 예를 들어 5라면 11111이 되는 식이다. 즉 1이 더해질 때마다 자릿수가 1씩 증가한다. 소수 표시도 불가능해서 어디다 쓸까 싶지만[6] 초등학교 저학년 때 쓰는 산가지를 이용한 셈법이나 1~5까지를 '正'의 획순대로 쓰는 것 또한 1진법에 포함된다. 한자의 경우 1~3까지 1진법으로 표현된다.(一二三)
  • ternary[7](3진법): 0, 1, 2를 사용하는 진법. 칸토어 집합을 다루다 보면 자주 접하게 된다. 현존 최악의 난해한 프로그래밍 언어 Malbolge의 인터프리터가 3진법에 기반하고 있다.
  • base 32(32진법): 숫자 0~9, 알파벳 일부를 사용하는 진법으로 5비트를 한 자리로 표기하기 위한 기법이다. 프로그래밍 언어에 따라 많이 다르다.
  • base 36(36진법): 숫자 0~9, 알파벳 A~Z를 모두 사용하는 진법으로 62이 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진법[8]): 숫자 0~9, 알파벳 대문자 A~Z, 소문자 a~z[9]를 모두 사용하다 못해 특수문자도 대거 사용한다. 아스키 코드의 대부분을 사용한다고 해서 Ascii85라는 명칭이 되었다. PC통신 시절에 많이 사용했던 ZMODEM 프로토콜이 이걸 사용했다. 왜 하필 85냐면 [math(256 \times \frac13)]의 근사치면서 [math(\sqrt[5]{2^{32}})]이 84와 85의 사이에 있기 때문. 즉, 32비트를 5자리의 문자로 나타낼 수 있는 가장 작은 진법이다.

1.2. 표현

다음 문단의 증명에 따라서 임의의 자연수 [math(a)]와 정수 [math(n \geq 2)]에 대해,
[math(a=a_k n^k+a_{k-1}n^{k-1}+a_{k-2}n^{k-2}+\cdots +a_{1}n+a_0)] (단, [math(0 \leq a_0, a_1, \cdots , a_k < n,\ a_k \neq 0)])… ①
을 만족하는 정수들의 순서쌍 [math((a_1, a_2, \cdots, a_k))]들을 언제나 유일하게 찾을 수 있다.

이때, [math(a={ \overline{a_{k}a_{k-1}\cdots a_{1}a_{0}}}_{(n)})]으로 표기한 것을 [10] [math(a)]를 [math(n)]진법으로 표현한다라 한다. 10진법은 물론 아래첨자 n을 생략할 수 있다.

또, 위의 식 ①와 같이 a를 표기한 것을 [math(n)]진 기수법의 전개식이라고 하며, 각각의 자리를 [math(a)]의 [math(n^i)] 자릿수라고 한다. 예를 들어 [math(4256)]에서 [math(2)]는 [math(4256)]의 [math(10^2 =100)]의 자릿수이다.

1.3. 진법 표현의 존재성과 유일성 증명

1.3.1. 존재성

존재성의 증명은 나눗셈 정리를 이용한다. 양의 정수에 대해서 증명을 하고 이걸 일반적인 정수 전체, 실수, 복소수 등등으로 확장시키는게 일반적.

양의 정수 [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)]진법 표기는 존재한다.

1.3.2. 유일성

정수 [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_k<b)]이므로, [math(|a_k-c_k|=|d_k|<b)]여야 한다. 따라서 [math(d_k=0)]이어야 하는데, 위에서 [math(d_k\neq 0)]이라고 했으므로 모순이다.
따라서, 유일하지 않은 표현이 존재한다는 전제가 틀렸다는 것이 되므로, 진법 표현은 유일하다.

단, 이는 밑수가 양수라는 전제 하에서만 적용되며, 밑수가 음수인 음수 진법에서는 유일하지 않는다.[11]

1.4. 진법 변환

어떤 수를 n진법으로 변환하려면 그 수를 0이 될 때까지 n으로 나누고, 그 나머지를 거꾸로 읽어 올라가면 된다.[출처] 예를 들어 10진수 13은 아래와 같이 2진법 1101로 변환할 수 있다.

[math(\begin{array}{r} \begin{array}{r}\\ 2~\big) \\ 2~\big) \\ 2~\big) \\ 2~\big) \\\\\\ \end{array} \!\!\:\!\!\!\!\! \begin{array}{r} \\ ~13 \\ \hline ~6\\ \hline ~3\\ \hline ~1\\ \hline 0\\ \\ \end{array}
\begin{array}{r} \\\\ \cdots ~1\\ \cdots ~0 \\ \cdots ~1 \\ \cdots ~1 \\\\\end{array}
\begin{array}{r}\\ \!\!\left \uparrow \begin{array}{r} \\\\\\\ \end{array} \right.\end{array}
\end{array}
)]

1.4.1. 특수 경우

일반적으로 10과 같지 않고, 2보다 크거나 같은 서로다른 두 정수 [math(m,n)]에 대해, [math(m)]진수와 [math(n)]진수 사이의 변환은 일반적으로 10진법을 통한 변환을 통해하는 것이 일반적이다. 즉 2진법을 3진법 수로 바꾸고 싶다면, 2진법을 10진법으로 바꾼 뒤 그것을 3진법으로 바꾸면 된다. 그러나 적당한 양의 정수 [math(i)]에 대해, [math(m=n^i\ {\sf or}\ n=m^i)]를 만족하게 할 수 있다면 그의 변환은 더욱 쉬워진다. 그 다음부턴 다음의 과정을 따르자.
[math(m)]진수를 [math(n)]진수로 변환할때,
1.첫째 자리(자연수 부분에서 제일 오른쪽 자리)부터 위에서의 [math(i)]만큼 분할한다.
1.각각의 부분을 [math(n)]진법으로 변환한다.
1.그 후 모든 수를 이어쓴다.

예를 들어 3진수 1201021022를 9진수로 바꾸어보자. 위에서 본 것 같이 10진수로 바꾼 33731을 다시 9진수로 바꾸는 것은 굉장히 힘들 것이다. 그러나 위의 과정과 같이 변화해보면, 이 경우 [math(i=2)]이므로,
1.[math(12/01/02/10/22_3)]
1.[math(5/1/2/3/8_9)]
1.[math(51238_9)]

1.4.2. 소숫점 아래 자리 변환

어떤 숫자의 진법을 변환할 때 정수 부분은 쉬운데, 소숫점 아래 부분은 좀 어렵다. 이때는 나눗셈 방법을 역이용해서, 1 미만의 소수(decimal)를 n진법으로 변환하려면 그 수의 소수 부분을 0이 될 때까지(혹은 원하는 자릿수만큼) n으로 곱하고 정수 부분만 순서대로 읽으면 된다.

예를 들어, [math(\frac{13}{16} = 0.8125_{(10)})]이고 다른 진법으로 변환하면 [math(0.1101_{(2)})], [math(0.\dot401\dot2_{(5)})][13], [math(0.31_{(4)})], [math(0.48:45_{(60)})][14] 등이다.

위 예시를 보면 알겠지만 같은 유리수라 하더라도 몇 진법이냐에 따라 무한소수(순환소수)가 되기도 하고 그렇지 않기도 하다. 일반적으로 특정 유리수를 분수로 나타내었을 때 분모에 해당하는 정수가 n진법에서 n의 소인수 이외의 소인수를 가지고 있으면 무한소수가 된다. 10진법에서 분모가 2와 5 이외의 소인수를 가지고 있으면 무한소수가 되는 것도 같은 이치이다.

1.5. 실수 진법으로의 확장


밑의 범위를 실수로 확장시키면 아래와 같이 음수, 유리수, 무리수 등에도 사용이 가능하다. 밑이 양의 정수가 아닌 경우, 둘 이상의 서로 다른 표기로 나타낼 수 있다.

1.5.1. 음수 진법

밑이 음수인 경우, 양수를 음수처럼, 반대로 음수를 양수처럼 부호를 붙여 표기할 수도 있다. 두 자리마다 부호가 바뀌기 때문에, 음의 부호(-)가 붙지 않은 경우 홀수 자릿수는 양수, 짝수 자릿수는 음수가 된다. 반대로 음의 부호가 붙은 경우, 홀수 자릿수는 음수, 짝수 자릿수는 양수가 된다. 다만, 음수 진법의 경우는 진법 표현의 유일성이 보장되지 않는다는 점에 주의할 것.

예를 들어, 377은 -10진법으로 다음과 같이 나타낼 수 있다.
  • [math(377 = 437_{(-10)})][15]
  • [math(377 = -1783_{(-10)})][16]

음수인 -15는 -2진법으로 다음과 같이 나타낼 수 있다.
  • [math(-15 = 110001_{(-2)})] [17]
  • [math(-15 = -10011_{(-2)})] [18]

1.5.2. 유리수 및 무리수 진법

정수가 아닌 유리수 및 무리수의 경우, 가장 큰 자릿수를 더 작은 단위로 쪼개서 표기할 수 있다. 이 때문에 동일한 하나의 수에도 무수히 많은 표기가 존재할 수 있다.

임의의 수 377은 아래 진법으로 각각 다음과 같이 나타낼 수 있다.
  • [math(377 = 2123_{(5.5)})]
  • [math(377 = 652_{(7.5)})][19]
  • [math(377 = 2.003_{(0.2)})][20][21]
  • [math(377 = 100000100000000100001.000010001\cdots{}_{\left(4/3\right)})][22]

무리수 진법도 밑의 절대값이 1만 아니라면 가능하다. 예를 들어 [math(varphi)][math(+1)][23]은 [math(\varphi)]진법으로 다음과 같이 나타낼 수 있다.
  • [math(\varphi+1=100_{(\varphi)}=11_{(\varphi)}=10.11_{(\varphi)}=10.1011_{(\varphi)}=10.101011_{(\varphi)}...)][24]
  • [math(3=101_{(\sqrt2)})][25]
  • [math(1.5=101_{\left(\sqrt2/2\right)})][26]

1.6. 복소수 진법

더 나아가서, 밑이 복소수인 진법도 만들 수 있다. 참고

가장 간단하게 10i진법을 떠올릴 수 있다.
  • [math(377=\left(607+1030i\right)_{(10i)})][27]

또, 377은 2i진법으로 다음과 같다.
  • [math(377=\left(100010001+10101000i\right)_{(2i)})][28]

1.7. 칸토어 표현

Cantor Expression
게오르그 칸토어가 창안한 진법과 비슷한 체계로서, 임의의 양의 정수 [math(a)]에 대해 다음 두 조건을 만족하는 순서쌍 [math(\left(c_1, \cdots, c_m\right))]이 존재한다.
1. [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)]에 대하여 그 거듭제곱 꼴의 합으로서 수를 표현한다면, 칸토어 표현은 연속된 팩토리얼로서 표현하는 것.

실제로, 팩토리얼의 성질에 따라 다음 관계식이 성립함은 표현의 유일성을 보증해준다.[29]
  • [math(\displaystyle \sum_{i=1}^{n} i\cdot i!=(i+1)!-1)]

또한 이 칸토어 표현을 확장하여, 게오르그 칸토어는 임의의 서수 역시 비슷한 방법으로 표현할 수 있다고 증명했으며, 이를 완전 칸토어 표준형(Complete Cantor's Normal Form)이라고 부른다.

1.7.1. 존재성

역시 나눗셈 정리를 이용한다. 다만 과정이 조금 바뀌는데 대략적인 흐름만 소개하면 다음과 같다.
  • 임의의 양의 정수 [math(b)]에 대하여, [math(n_1! \leq b < (n_1+1)!)]를 만족하는 정수 [math(n_1)]이 존재한다.
    이는 팩토리얼이 정수를 원소로 가지는 증가하는 단조증가수열이므로 삼일률[30]에 따라서 모든 양의 정수는 팩토리얼의 어느 한 원소와 대소관계를 비교할 수 있기 때문에 자명하다.
  • 그리고 이런 조건을 만족하는 [math(b)]와 [math(n_1!)]에 대하여, 정수 [math(k_1)]과 [math(b_1)]이 존재하여, [math(b=k_1\cdot n_1!+b_1)]가 되는 것이 나눗셈 정리에서 도출된다.
    (단, [math(1\leq k_1\leq n)])
    이 때, 나머지항 [math(b_1)]은 제수 [math(n!)]보다 작음은 자명하므로, 다시 위의 과정을 적용하는 것을 반복하여 [math(1!)]까지 내려올 수 있으므로, 정수 [math(b)]의 칸토어 표현 표기성이 존재한다는 것을 보일 수 있다.

2. 군대 용어

. 군대 등에서 전투력 증강을 위해 사용했던 특수한 병력 배치법. 부대의 병력을 배치하고 부대의 진형을 짜는 방법을 진법이라고 부른다. 화기가 등장하기 전까지만 해도 전투는 대부분 근접전투 위주의 전법이 사용되었으며, 그에 따라 병력을 효율적으로 배치하여 최대한의 효과를 보기 위한 병력 배치법이 여럿 등장했다.

춘추전국시대의 병법가 손빈의 저서[31]에서도 진법에 대한 개념이 나온다.(여담으로 삼국지5의 진법 이름중 대다수는 이 책에서 나오는 이름이다.)

서양에서도 고대부터 진법이 사용되었는데, 고대 그리스의 팔랑크스가 사용했던 밀집방진이나 로마 군단의 3개 대열이 그 예라 할 수 있으며 이후 근세에 사용된 전열보병의 선형진도 진법의 예라 할 수 있다.

< 삼국지연의>를 보면 중반 즈음에 조인의 '팔문금쇄진'이라는 진법이 등장하는데 이문열 평역에서는 황건란으로 시작된 후한말의 혼란기가 어느 정도 안정되어 오합지졸이 아닌 제대로 훈련된 병사로 진법을 사용한 첫 사례라고 주장하지만 실제로 그랬던 것은 아니다.

사실 현대에도 이 개념은 여전히 유효하다. 제식훈련을 현재까지도 강조하는 이유 중 하나. 현대전의 소부대 전술에서 사용되는 진법의 종류에 대해서는 진형 문서에서 상세히 설명되고 있으니 관심이 있다면 해당 문서를 참조할 것.

진법붕괴와 함께 전 병력이 궤멸될정도로 중요하지만 사극에서는 진법이고 뭐고 없이 냅다 돌격만하다 난전으로 끝난다. 실제로 사극처럼 무작정 돌진한다면 전멸을 면치 못할 것이다.[32]

2.1. 조선시대의 병서

파일:상세 내용 아이콘.svg   자세한 내용은 진법(병서) 문서
번 문단을
부분을
참고하십시오.

2.2. 무협소설에 등장하는 용어

크게 두 가지의 뜻으로 쓰인다. 사실 현실에 존재하는 물리법칙과 기술력, 병력, 작전 등을 이용해 밑에 써있는 두가지[33]를 조합해서 써먹으면 위 항목의 진법이 된다.

1. 자연물 내지는 인공물을 특정한 방식에 따라 배치하여 특수한 효과를 일으키는 방법의 총칭.
삼국지연의》에서 제갈량이 돌을 이용하여 축공했다고 나오는 '석진'이 그 모티브로 보인다. 무협의 세계관에서는 보통 귀곡자가 유명하다.
2. 무공의 일종. 정확히는 무공의 조합을 통한 협동 공격의 방법론이라고 할 수 있다. 일반적으로 웬만한 대문파면 하나씩은 가지고 있는 듯하다.
소림사의 백팔나한진/십팔나한진, 개방의 타구진 등이 유명하며, 과장 좀 보태 개나소나 다 쓴다는 '삼재진' 등이 있다.


[1] 하지만 16진법은 인간이 읽기 쉽도록 2진법의 4자리를 묶어 1자리로 쓰는 것이기 때문에 때문에 컴퓨터는 실질적으로 2진법만 처리한다고 보면 된다. [2] 프랑스 주변 지역 프랑스어에서는 별도의 표현을 쓴다. [3] 로마 숫자 4(IV)는 5(V) 앞에 표기한 1(I)만큼 뺀 기호로, 9(IX)는 10(X) 앞에 표기한 1(I)만큼 뺀 기호로 표기하는 것으로도 이를 알 수 있다. [4] 또는 base 1 [5] 진법이라 보기에는 애매하다. 이것과 비슷한 체계가 스프레드시트의 열 표기인데 단항 기수법에서 기호가 26개로 늘어난 버전이라 볼 수 있다. [6] 더해서 진법이 0에 가까워지면 작은 수를 표현하는 데에도 써야 하는 기호가 매우 많이 필요하며, 0진법이면 아예 0이나 무한소가 아닌 다른 임의의 수를 표시하려면 무한대가 되어버린다. 음수 진법의 경우 그렇지는 않다. 어디까지나 0진법에 가까워질수록 특정 수를 표현하는데 필요한 기호가 무진장 늘어나기 때문. 만약 무한 진법일 경우 큰 수를 표현하는 것마저도 0이나 무한소가 되어버린다.(...) [7] 또는 base 3 [8] base 85 [9] 다만, v, w, x, y는 사용되지 않는데, 그 이유는 u가 84에 해당하는 값이기 때문. z는 [math(00000 = ~!!!!!)]를 나타내는 데 쓴다. [10] 맨 윗줄은 생략할 순 있으나, 보통 그러면 모든 수들의 곱을 나타내므로 작성하는 것이 좋다, 또 진법을 표기할 때 괄호를 치지 않아도 된다. [11] 바로 옆 자리수의 부호가 바뀌기 때문에 같은 수를 표현하는 방법이 0이 아닌 자리수의 수 1개마다 2배로 늘어나게 된다. 간단히 말하면 [math(-p)]진법에서 [math(q)]를 표현하는걸 [math(q)]로 표현할 수도, [math(-\{1\times (-p) + \bar{q}\})]로 표현할 수도 있기 때문.([math(\bar{q})]는 [math(q)]의 [math(p)]에 대한 보수.) [출처] https://terms.naver.com/entry.nhn?docId=3572374&cid=58944&categoryId=58970 [13] 4012가 반복된다 [14] 각 자릿수를 콜론으로 구분한다 [15] [math(377 = 4 \times (-10)^2 + 3 \times (-10)^1 + 7 = 400-30+7)] [16] [math(377 = -\left( 1 \times -10^3 + 7 \times -10^2 + 8 \times -10 + 3 \right) = 1000-700+80-3)] [17] [math(-15 = -2^5 + -2^4 + 1 = -32+16+1)] [18] [math(-15 = - \left\{ -2^4 + (-2) +1 \right\} = -16+2-1)] [19] [math(377 = 6 \times 7.5^2 + 5 \times 7.5 + 2)] [20] [math(377 = 2 + 3 \times 0.2^{-3})] [21] [math(\frac1n)]진법은 [math(n)]진법을 첫번째 자리 기준으로 뒤집어 적은 것과 같다. [22] [math(377=\left(\frac43\right)^{20}+\left(\frac43\right)^{14}+\left(\frac43\right)^5+\left(\frac43\right)^0+\left(\frac43\right)^{-5}+\left(\frac43\right)^{-9}+...)] [23] [math(\varphi)]란 [math(\displaystyle\frac{1+\sqrt5}2=1.618033...)]으로 나타내어지는 황금수이다. 따라서 [math(\varphi+1=\dfrac{3+\sqrt5}2=2.618033...)]이다. [24] [math(\varphi)]의 정의인 '[math(1:\varphi =\varphi -1:\varphi)]를 만족하는 양수'에 의해, [math(\varphi +1 = \varphi^2)]가 성립하기 때문에 이런 현상이 일어난다. 이 때문에 정수가 아닌 진법에는 동일한 하나의 수에도 무수히 많은 표기가 존재한다. [25] [math(3=({\sqrt2})^2+({\sqrt2})^0)] [26] [math(1.5=\left({\dfrac{\sqrt2}2}\right)^2+\left({\dfrac{\sqrt2}2}\right)^0)] [27] [math(377=6\times\left(10i\right)^2+7\times\left(10i\right)^0+\left[1\times\left(10i\right)^3+3\times\left(10i\right)^1\right]i)] [28] [math(377=\left(2i\right)^8+\left(2i\right)^4+\left(2i\right)^0+\left[\left(2i\right)^7+\left(2i\right)^5+\left(2i\right)^3\right]i)] [29] 실제 증명은 나머지 정리를 이용한 진법 표현의 유일성과 존재성 증명과 비슷하며, 본문의 내용은 어디까지나 증명이 아니라 보증일 뿐이다. [30] 모든 두 실수는 대소관계를 비교할 수 있다는 것을 의미. 즉, [math(\forall a, b \in \mathbb{R})]은 [math(a>b, a=b, a<b)]의 셋 중 하나라는 논리다. [31] 손자병법, 손빈병법 [32] 이를 구현하는 건 힘들고 짧게 나오고 특히 돈이 많이 든다. 진법과 단순 돌격에 차이를 알고 싶다면 로마군 진법을 영상화 한 것이 있으니 참고 하는 게 좋다. 정예군의 위력을 알 수 있다. [33] 적재적소(장소가 마땅치 않으면 인공적으로 만들거나 특정 장소에 적을 끌어들여서라도)에 알맞는 수의 병력을 배치해 알맞는 작전을 통해 적을 친다.