장제법

장제법(長除法, Long division) 또는 긴 나눗셈은 산술에서 손으로 수행할 수 있을 만큼 간단한 여러 자리의 수를 나누는 데에 적합한 표준 나눗셈 알고리즘이다. 장제법은 분할 문제를 보다 쉬운 하나의 단계로 세분화한다.
모든 나눗셈 문제에서와 같이 피제수(dividend)라고 부르는 하나의 숫자는 제수(divisor)라고 부르는 다른 숫자에 의해 나뉘어서 몫(quotient)이라는 결과를 낳는다. 그것은 하나의 간단한 단계를 수행하여 임의로 큰 수를 포함하는 계산을 수행할 수 있게 한다. 장제법의 축약된 형태를 단제법(短除法) 또는 짧은 나눗셈이라고 하는데 제수가 한 자리만 있을 때에 거의 항상 장제법 대신에 사용된다. 청킹(Chunking, 부분 할당 방법 또는 행맨 방법이라고도 함)은 영국에서 두드러지는 덜 기계적인 장제법의 양식이며 나눗셈 과정에 대한 보다 전체적인 이해에 기여한다.
12세기 이후에 관련 알고리즘이 존재했지만 현대에 사용되는 특정 알고리즘은 1600년경에 헨리 브릭스에 의해 도입되었다.
교육계.
저렴한 계산기와 컴퓨터는 나눗셈 문제를 해결하는 가장 일반적인 방법이 되었는데 종이와 연필을 활용한 전통적인 수학적 연습 방법을 보여주는 교육 기회를 감소시켰다. 내부적으로 이러한 장치는 다양한 나눗셈 알고리즘 중 하나를 사용하며 그 중에서 더 빠른 것은 작업을 달성하기 위해 근사값과 곱셈에 의존한다. 미국에서는 전통적으로 4학년이나 5학년 시기에 도입되었는데 특히 장제법이 개혁 수학에 의해 학교 교과 과정에서 탈락하는 것을 목표로 삼고 있다.
방법.
영어권 국가에서는 장제법을 활용하는 과정에서 나눗셈 빗금⟨/⟩ 또는 나눗셈 기호⟨÷⟩를 사용하지 않고 하나의 작품을 연출한다. 제수는 오른쪽 괄호⟨)⟩나 세로 수직선⟨|⟩으로 피제수와 분리되는데 피제수는 괄선에 의해 몫과 분리된다. 이러한 두 기호 간의 조합은 때로 장제법 기호 또는 분할 괄호로 알려져 있다. 이는 18세기에 왼쪽 괄호로 몫으로부터 피제수를 분리한 이전의 단일 선 표기법에서 발전되었다.
이 과정은 피제수의 왼쪽 끝 자리를 제수로 나누는 것부터 시작한다. 몫(정수로 반올림)은 결과의 첫 번째 자리가 되고 나머지는 계산되는데 이 단계는 뺄셈으로 표기되어 있다. 이러한 나머지 부분은 과정이 피제수의 다음 자리(나머지까지의 다음 자리 '내림'으로 표기)에 반복될 때 진행된다. 모든 숫자가 처리되고 나머지가 남지 않으면 과정이 완료된다.
아래에는 500을 4로 나눠서 125가 나오는 나눗셈을 나타내는 예가 나와 있다.
 125 (설명)
 4)500
 4 ( 4 × 1 = 4)
 10 ( 5 - 4 = 1)
 8 ( 4 × 2 = 8)
 20 (10 - 8 = 2)
 20 ( 4 × 5 = 20)
 0 (20 - 20 = 0)
단계에 대한 자세한 설명은 다음과 같다.
만약 피제수가 부족한 상황일 때에 마지막으로 남은 것이 0이 아니라면 우리가 2가지 가능한 행동 방식이 존재할 것이다.
 31.75 
 4)127.00
 12 (12 ÷ 4 = 3)
 07 (나머지 0, 다음 숫자를 줄임)
 4 (7 ÷ 4 = 1 r 3) 
 3.0 (0과 소수점을 내림)
 2.8 (7 × 4 = 28, 30 ÷ 4 = 7 r 2)
 20 (0을 추가로 내림)
 20 (5 × 4 = 20)
 0
이 예제에서 결과의 소수 부분은 단위 자릿수를 넘어 0을 피제수의 소수 부분인 "내림"하는 과정을 계속하여 계산된다. 또한 이 예제는 과정을 시작하는 과정에서 0을 생성하는 단계를 생략할 수 있음을 보여준다. 1번째 자릿수 1이 자릿수 4보다 작기 때문에 1번째 단계는 처음 두 자릿수 12에서 대신 수행한다. 마찬가지로 제수가 13이면 12 또는 1이 아니라 127에서 첫 번째 단계를 수행한다.
불변속성 및 정확성.
과정 단계(위쪽)의 기본 표시는 결과가 정확함을 보장하는 "단계의 속성"보다는 "어떠한" 단계를 수행해야 하는지에 초점을 맞춘다(특히 "q × m + r = n", 여기서 "q"는 최종 몫이고 "r"은 마지막 몫이다). 프레젠테이션 과정에서의 약간의 변화는 더 많은 쓰기를 요구하며 우리는 단순히 인용구의 숫자를 업데이트하는 것이 아니라 우리가 변경하도록 요구하지만 이러한 단계들이 프로세스의 중간 지점에서 "q &amp; times; m + r"의 평가를 허용함으로써 실제로 올바른 답을 도출하는 "왜"를 더 많이 보여줄 수 있다. 이것은 알고리즘의 파생에 사용되는 주요 속성을 보여준다 (아래쪽).
구체적으로 우리는 위의 기본 절차를 수정하여 시공 중인 "몫"의 자릿수 뒤에 0을 적어도 1의 자리로 채우고 그러한 0을 분할 괄호 아래에 쓰는 숫자에 포함시키도록 한다.
이를 통해 우리는 "q × m + r = n"과 모든 단계에서 불변량을 유지할 수 있다. 여기서 "q"는 부분 분할된 몫(분할 괄호 위쪽)이고, "r"은 부분 분할된 나머지(분할 괄호 아래쪽에 나와 있는 번호)이다. 처음에는 "q=0"과 "r=n"이 유지되기 때문에 이러한 속성은 처음에 유지된다. 이 프로세스는 각 단계에서 "r"을 줄이고 "q"를 증가시킨다. 우리가 몫 + 정수 나머지 형태로 답을 찾는다면 결국 "r=m"이 될 때 중단된다.
위의 "500 ÷ 4" 예제를 다시 살펴보자.
 125 ("q", 아래와 같이 000을 100, 120, 125 순으로 변경한다.)
 4)500
 400 ( 4 × 100 = 400)
 100 (500 - 400 = 100; "q=100", "r=100"이면 "q×4+r = 500"이 된다.)
 80 ( 4 × 20 = 80)
 20 (100 - 80 = 20; "q=120", "r= 20"이면 "q×4+r = 500"이 된다.)
 20 ( 4 × 5 = 20)
 0 ( 20 - 20 = 0; "q=125", "r= 0"이면 "q×4+r = 500"이 된다.)
여러 자리 구분 기호 예제.
자릿수 구분 기호를 사용할 수 있다. 이 예제에서는 1,260,257을 37로 나눈다. 먼저 다음과 같이 문제가 설정된다.
 37)1260257
숫자 1,260,257의 자릿수는 37보다 크거나 같은 숫자가 발생할 때까지 계산된다. 그래서 1과 12는 37보다 적지만 126은 더 크다. 다음으로 126보다 작거나 같은 37의 최대 배수가 계산된다. 따라서 3 &amp; times; 37 = 111 &lt; 126이지만 4 &amp; times; 37 &gt; 126이다. 다중적인 111은 126 아래에 기록되고 3은 해답이 나타나는 위쪽에 기록된다.
 3 
 37)1260257
 111
이 숫자가 어느 자리값 선에 입력되었는지 주의 깊게 기록한다. 몫의 3은 피제수 1,260,257의 6과 같은 선(1만 자리)에 속하며 이는 마지막 자리인 111과 같은 선이다. 그런 다음에 위쪽 선에서 111을 빼면서 오른쪽에 있는 모든 숫자를 무시한다.
 3 
 37)1260257
 111
 15
다음으로 작은 피제수의 자리 값에서 나온 자릿수가 복사되어 결과 15에 추가된다.
 3 
 37)1260257
 111
 150
과정 반복: 37의 최대 배수가 150보다 작거나 같은 값을 뺀다. 이 값은 148 = 4 &amp; times; 37이므로 다음 자릿수로 위에 4를 추가한다. 뺄샘 결과는 피제수에서 추출한 다른 숫자로 확장된다.
 34 
 37)1260257
 111
 150
 148
 22
37이 22보다 작거나 같은 최대 배수는 0 &amp; 곱; 37 = 0이다. 22에서 0을 빼면 22가 주어지므로 종종 뺄셈 단계를 쓰지 않는다. 그 대신 피제수에서 다른 숫자를 빼면 된다.
 340 
 37)1260257
 111
 150
 148
 225
37이 마지막 선을 정확히 나눌 때까지 과정이 반복된다.
 34061
 37)1260257
 111
 150
 148
 225
 222
 37
혼합 모드 장제법.
십진수 이외의 통화(예: 1971년 이전의 영국 파운드 스털링 시스템) 및 측정(예: 상형) 과정에서는 혼합 모드를 사용해야 한다. 50마일 600야드를 37개 조각으로 나누는 것을 고려한다.
 mi - yd - ft - in
 1 - 634 1 9 r. 15"
 37) 50 - 600 - 0 - 0
 37 22880 66 348
 13 23480 66 348
 1760 222 37 333
 22880 128 29 15
 ===== 111 348 ==
 170 ===
 148
 22
 66
4개의 기둥 각각이 차례대로 작업한다. 마일부터 시작하면 50/37 = 1 나머지 13이라는 등식이 나온다. 더 이상 분할이 불가능하므로 마일을 야드로 변환하기 위해 1,760의 긴 곱셈을 수행한다. 결과는 22,880야드이다. 이것을 야드 기둥의 맨 위까지 옮겨서 피제수 600야드에 23,480을 더한다. 23,480 / 37의 장제법은 현재 634의 나머지 22를 산출하고 정상적으로 진행된다. 나머지는 3을 곱해 몫을 얻고 몫의 기둥까지 옮겨진다. 몫의 장제법은 1의 나머지를 29로 주고 그 다음에 12를 곱하면 348인치가 된다. 긴 편차는 계속되며 마지막으로 남은 15인치는 결과 줄에 표시된다.
소수점 결과 해석.
몫이 정수가 아니고 나눗셈 과정이 소수점 이상으로 확장되면 다음 두 가지 중 하나가 발생할 수 있다.
임의 베이스 알고리즘.
모든 자연수 formula_1은 임의의 밑 formula_2에서 고유의 숫자 수열인 formula_3을 통해 표현할 수 있다. 여기서 formula_4인데 formula_5는 formula_1의 자릿수이다. formula_1의 자릿수 및 기준 값은 다음과 같다.
formula_1은 피제수가 되고 formula_10은 제수가 된다. 여기서 formula_11은 formula_10 단위의 자릿수이다. 만약 formula_13이면 formula_14이고 formula_15이다. 그렇지 않으면 정지되기 이전에 formula_16에서 반복한다.
각각의 반복문 formula_17에 대해 formula_18를 지금까지 추출한 몫에 가깝게 만든 다음에 formula_19를 중간 피제수로 하고 formula_20를 중간 나머지로 한다. formula_21를 원래 피제수의 다음 자릿수로 한 다음에 formula_22를 몫의 다음 자릿수로 한다. 밑의 자릿수인 formula_23의 정의에 따르면 formula_24이 되고 모든 값은 자연수가 된다. 우리는 다음과 같이 시작한다.
맨 처음 formula_27은 formula_1의 자릿수가 된다.
반복할 때마다 세 가지 방정식이 참이다.
그런 것은 formula_22이 formula_33에 달하는 단 하나의 공식만이 존재한다.
마지막 몫은 formula_34이고 마지막 나머지는 formula_35이다.
예제.
십진법에서 위와 같은 예를 따라 formula_36과 formula_37에 초기의 값 formula_38 및 formula_39를 사용한다.
따라서 formula_40는 formula_41이다.
십육진법에서 formula_42와 formula_43에 초기의 값 formula_38 및 formula_45를 사용한다.
따라서 formula_46는 formula_47이다.
만약 누군가가 밑 에 대한 덧셈, 뺄셈, 곱셈 표가 없다면 이러한 알고리즘은 숫자가 소수점으로 변환되고 마지막에 밑 로 다시 변환되는 경우에도 여전히 작동한다. 예를 들어 위와 함께
과
함께 formula_50이 된다. 초기의 값은 formula_38이고 formula_52이 된다.
따라서 formula_53이고 formula_54이 된다.
이러한 알고리즘은 위 문단과 같이 동일한 종류의 연필 및 종이 표기법을 사용하여 수행할 수 있다.
 d8f45 r. 5
 12 ) f412df
 ea
 a1
 90
 112
 10e
 4d
 48
 5f
 5a
 5
유리수 몫.
할당량이 정수로 제한되지 않으면 formula_55에 대한 알고리즘이 종료되지 않는다. 대신 만약에 formula_55이면 정의에 따라 formula_57을 표시한다. 만약 나머지 formula_20가 반복해서 0과 같으면 몫은 formula_23-진 유리수가 되고 formula_23 위치 표기법에 기초한 유한 소수 확장이 된다. 그렇지 않으면 이것은 여전히 유리수이지만 formula_23-진 유리수가 아니며 대신 formula_23 위치 표기법에 기초한 무한 반복 소수 확장이 된다.
이항 분할.
이진법 체계의 계산은 더 간단하다. 왜냐하면 경로의 각 자릿수는 1 또는 0이기 때문인데 항등원 또는 흡수원 가운데 하나의 결과로 곱할 필요가 없기 때문이다.
만약 이것이 컴퓨터에서라면 10의 곱셈은 1이 왼쪽으로 비트 이동을 하는 현상을 나타낼 수 있는데 formula_22은 논리 연산을 통해 감소되어 formula_64으로 바뀜을 표현한다. 여기서 참 = 1, 거짓 = 0이라는 등식을 찾아낼 수 있다. 또한 formula_16이 반복되는 현상을 표현하기 위하여 다음 작업이 수행된다.
예를 들어 formula_67이고 formula_68일 때 초기의 값 formula_38 및 formula_70를 사용한다.
따라서 formula_71이고 formula_72이다.
성과.
각 반복에서 가장 많은 시간이 걸리는 작업은 formula_22를 선택하는 것이다. 우리는 가능한 값이 있다는 것을 알고 있으므로 formula_74를 사용하여 formula_22를 찾을 수 있다. 각 비교 과정에서는 formula_76를 평가해야 한다. formula_5는 피제수 formula_1의 자릿수이고 formula_11은 몫 formula_10의 자릿수이다. 자릿수의 값은 formula_81이다. 그러므로 formula_82의 곱은 formula_83이며 이와 마찬가지로 formula_76의 뺄셈이다. 따라서 formula_85를 선택하는 데에는 formula_22를 선택한다. 알고리즘의 나머지 부분은 덧셈이고 왼쪽 한 자리에는 formula_18와 formula_20의 자리 이동이 있다. 따라서 염기 formula_89와 formula_83의 몫에는 formula_23가 있으므로 각 반복에는 formula_92을 취한다. 모든 formula_93 자리에서 알고리즘은 formula_94 또는 formula_95의 몫 formula_23을 취한다.
일반화.
유리수.
정수의 장제법은 유리수이기만 하면 비정수 피제수를 포함하도록 쉽게 확장될 수 있다. 이는 모든 유리수에는 반복적인 순환소수가 있기 때문이다. 또한 이 절차는 유한하거나 종단하는 십진법 확장(즉 소수 분수)을 갖는 제수를 포함하도록 확장될 수 있다. 이러한 절차에는 "a" ÷ "b" = ("ca") ÷ ("cb") –라는 사실을 이용하여 새로운 제수가 정수가 되도록 제수와 피제수에 10의 적절한 거듭제곱을 곱한 다음에 위와 같이 진행한다.
다항식.
다항식 장제법이라고 부르는 장제법의 일반화된 버전은 다항식을 나누는 데에도 사용된다(때로는 조립제법이라고 부르는 버전을 사용하기도 한다).