이 절차는 문자가 들어오면서 새로 생긴 것이 아닙니다. 두 자리 수끼리의 곱셈을 손으로 할 때 이미 하고 있던 일입니다.
23×45 를 자리로 풀면 (20+3)(40+5) 이고, 여기서 곱이 넷 나옵니다. 800, 100, 120, 15 를 더하면 1035 입니다. 4번 글에서 세로셈을 자리별로 쪼개 본 것이 이것이었습니다.
(x+2)(x+5) 도 곱이 넷입니다. x2, 5x, 2x, 10 입니다. 다른 점은 하나뿐입니다. 수는 자리마다 크기가 정해져 있어 100+120 처럼 바로 더해지지만, 문자는 x 에 무엇이 들어올지 모르므로 5x+2x 까지만 합치고 x2 과는 못 합칩니다. 동류항끼리만 합친다는 규칙이 여기서 나옵니다.
곱의 개수 세기
항이 셋 이상인 괄호가 나오면 빠뜨리기 시작합니다. 그래서 곱을 시작하기 전에 몇 개가 나와야 하는지부터 세어 둡니다. 앞 괄호의 항 수와 뒤 괄호의 항 수를 곱한 값입니다.
(x+2)(x2−3x+1)
앞이 두 항, 뒤가 세 항이므로 곱은 2×3=6 개여야 합니다. 하나씩 적습니다.
x⋅x2+x⋅(−3x)+x⋅1+2⋅x2+2⋅(−3x)+2⋅1
=x3−3x2+x+2x2−6x+2
여섯 개가 다 나왔습니다. 이제 동류항을 합칩니다. x2 끼리 −3x2+2x2=−x2 이고, x 끼리 x−6x=−5x 입니다.
(x+2)(x2−3x+1)=x3−x2−5x+2
여섯을 미리 세어 두는 습관이 검산의 절반입니다. 다 적고 나서 개수가 다섯이면 하나를 빠뜨린 것이고, 어느 짝이 빠졌는지는 앞 항과 뒤 항을 표처럼 훑으면 금방 찾습니다.
항의 부호
전개에서 실제로 가장 많이 나는 실수는 곱셈이 아니라 부호입니다. 뺄셈을 "빼기"로 읽지 말고 그 항의 부호로 읽습니다.x−5 는 "x 에서 5를 뺀 것"이 아니라 "x 와 −5 를 더한 것"으로 봅니다. 그러면 부호가 항에 붙어 함께 움직입니다.
−2(x−5)=(−2)⋅x+(−2)⋅(−5)=−2x+10
괄호 앞의 −2 도 부호를 달고 들어가고, 안쪽의 −5 도 부호를 단 채로 곱해집니다. 음수끼리의 곱이 양수라 끝 항이 +10 입니다. 여기서 −2x−10 이라고 적는 것이 가장 흔한 실수입니다.
(x−2)(x+6)=x2+6x−2x−12=x2+4x−12
네 곱 중 부호가 붙은 것은 −2 가 낀 둘입니다. −2⋅x=−2x 이고 −2⋅6=−12 입니다.
부호가 섞인 전개는 x 에 아무 수나 넣어 검산합니다. 위 식에 x=1 을 넣으면 왼쪽은 (−1)(7)=−7 이고 오른쪽은 1+4−12=−7 입니다. 부호를 하나 틀리면 이 값이 어긋나므로 그 자리에서 잡힙니다.
한 변이 a+b 인 정사각형을 a 와 b 로 끊어 자르면 네 조각이 나옵니다. a2, ab, ab, b2 입니다.
(a+b)2=a2+2ab+b2
a2+b2 이 아닌 이유가 그림에 그대로 있습니다. 가운데 두 조각 2ab 를 통째로 버린 것이 a2+b2 입니다.
지난 글의 값으로 확인해 봅니다. a=3, b=−2 이면 2ab=−12 이고, 13+(−12)=1 입니다. 정확히 맞습니다.
(a−b)²
같은 그림에서 나옵니다. 한 변 a 인 정사각형에서 폭 b 인 띠를 가로세로로 하나씩 떼어 내면, 겹치는 모서리의 b2 을 두 번 뺀 셈이 됩니다. 한 번 되돌려 줍니다.
(a−b)2=a2−2ab+b2
가운데 항의 부호만 바뀝니다. 그런데 그림을 다시 그릴 것도 없이 앞의 공식에 b 대신 −b 를 넣기만 해도 됩니다.
(a+(−b))2=a2+2a(−b)+(−b)2=a2−2ab+b2
(−b)2=b2 이라 끝 항은 그대로이고 가운데만 부호가 뒤집혔습니다. 그러므로 외울 공식은 사실 셋이 아니라 둘입니다 — 제곱 공식 하나와 합차 공식 하나입니다. 뺄셈 쪽은 부호를 항에 붙여 다니는 앞 절의 습관이 있으면 자동으로 따라옵니다.
(a+b)(a−b)
이것은 잘라 붙이는 그림이 더 깔끔합니다.
한 변 a 인 정사각형에서 한 변 b 인 정사각형을 도려냅니다. 남은 ㄱ자를 한 번 잘라 옮겨 붙이면 가로 a+b, 세로 a−b 인 직사각형이 됩니다.
(a+b)(a−b)=a2−b2
13번 글에서 유리화할 때 켤레를 곱하면 분모의 근호가 사라졌던 것이 이 공식입니다. (5−3)(5+3)=5−3 이었습니다.
이 공식은 수 계산 요령으로도 그대로 쓰입니다.103×97 을 세로셈으로 하려면 곱이 넷이지만, 두 수가 100에서 3만큼 위아래로 떨어져 있다는 것을 보면 한 줄로 끝납니다.
103×97=(100+3)(100−3)=1002−32=10000−9=9991
48×52 도 같습니다. 502−22=2500−4=2496 입니다. 가운데 값을 기준으로 같은 거리만큼 벌어진 두 수의 곱이면 늘 이렇게 갑니다.
(a+b+c)²
항이 셋인 제곱도 그림이 그대로 통합니다. 한 변이 a+b+c 인 정사각형을 가로세로로 각각 세 토막 내면 조각이 3×3=9 개 생깁니다.
대각선에 놓인 세 조각이 a2, b2, c2 이고, 나머지 여섯 조각은 둘씩 짝을 이룹니다. ab 가 두 개, bc 가 두 개, ca 가 두 개입니다.
(a+b+c)2=a2+b2+c2+2ab+2bc+2ca
항이 여섯인 것도 미리 셀 수 있습니다. 제곱은 같은 것을 두 번 곱하는 것이니 곱이 3×3=9 개 나오고, 그중 셋이 대각선의 제곱이며 남은 여섯이 둘씩 합쳐져 세 종류가 됩니다. 그래서 서로 다른 항은 3+3=6 개입니다.
인수분해
전개의 반대 방향입니다. 더하기로 늘어놓은 식을 곱의 모양으로 되돌립니다.
x2+7x+10→(x+2)(x+5)
전개는 절차라 금방 익습니다. 인수분해는 찾기라서 훈련이 필요합니다. 뒤에서 실제로 막히는 쪽은 늘 이쪽입니다. 세 가지로 나눠 익힙니다.
공통인수 빼기
모든 항에 들어 있는 것을 밖으로 꺼냅니다. 분배법칙을 거꾸로 쓰는 것입니다.
6x2+4x=2x(3x+2)
6 과 4 의 공약수 2, 그리고 두 항에 다 있는 x 를 꺼냈습니다. 가장 먼저 확인할 것이 이것입니다. 공통인수를 빼 두면 남은 식이 작아져 뒤가 쉬워집니다.
항이 넷이면서 모든 항에 공통인 것이 없을 때는 둘씩 나눠 묶으면 공통인수가 새로 생깁니다.
ax+ay+bx+by=a(x+y)+b(x+y)=(a+b)(x+y)
앞의 두 항에서 a 를, 뒤의 두 항에서 b 를 꺼내니 양쪽에 x+y 라는 같은 덩어리가 남았습니다. 그 덩어리를 다시 공통인수로 꺼낸 것입니다. 수로 확인해 봅니다. a=2, b=3, x=4, y=5 이면 왼쪽은 8+10+12+15=45 이고 오른쪽은 5×9=45 입니다.
어떻게 짝지어 묶을지는 해 보고 정합니다. 위 식을 ax+bx 와 ay+by 로 나눠 묶어도 x(a+b)+y(a+b)=(a+b)(x+y) 로 같은 곳에 닿습니다.
곱셈 공식 되돌리기
위에서 만든 셋을 오른쪽에서 왼쪽으로 읽습니다.
이 모양이 보이면
이렇게 묶는다
a2+2ab+b2
(a+b)2
a2−2ab+b2
(a−b)2
a2−b2
(a+b)(a−b)
x2+10x+25 를 봅니다. 첫 항이 x2, 끝 항이 52, 가운데가 2×x×5 입니다. 모양이 맞으므로 (x+5)2 입니다.
x2−16 은 x2−42 이므로 (x+4)(x−4) 입니다. 제곱에서 제곱을 뺀 모양은 눈에 익혀 두면 가장 빨리 알아보게 됩니다.
여기서 한 가지를 놓치기 쉽습니다. 제곱인 것은 문자만이 아니라 계수도 포함합니다.
4x2−25=(2x)2−52=(2x+5)(2x−5)
4 가 22 이므로 4x2 은 통째로 (2x)2 입니다. 9x2−16y2 도 (3x)2−(4y)2 이라 (3x+4y)(3x−4y) 가 됩니다. 계수가 1이 아니라고 해서 이 갈래에서 빠지는 것이 아니라, 계수 자체가 제곱인지를 보면 됩니다. 4, 9, 16, 25, 36을 제곱으로 알아보는 눈이 여기서 필요합니다.
두 수 찾기
x2+7x+12 처럼 완전제곱도 아니고 차도 아닌 것이 남습니다.
(x+a)(x+b)=x2+(a+b)x+ab
이 모양을 되돌리려면 곱하면 12, 더하면 7이 되는 두 수를 찾으면 됩니다. 12를 만드는 짝을 늘어놓고 합을 봅니다.
두 수
곱
합
1, 12
12
13
2, 6
12
8
3, 4
12
7
x2+7x+12=(x+3)(x+4)
부호가 섞이면 이렇게 봅니다. 끝 항이 음수이면 두 수의 부호가 다르고, 양수이면 같습니다. 같을 때는 가운데 항의 부호가 곧 두 수의 부호입니다.
x2−2x−8 은 끝이 음수이므로 부호가 다른 짝을 찾습니다. 곱이 −8, 합이 −2 인 두 수는 −4 와 2 이므로 (x−4)(x+2) 입니다.
전개로 검산
인수분해는 찾기라서 맞았는지 스스로 확인하는 마무리가 필요합니다. 방법은 하나뿐이고 늘 됩니다. 묶은 결과를 도로 전개해 원래 식으로 돌아오는지 보는 것입니다.
(x−4)(x+2)=x2+2x−4x−8=x2−2x−8
원래 식으로 돌아왔습니다. 전개는 절차라 틀릴 일이 적으니, 찾기의 결과를 절차로 검사하는 셈입니다. 다 펴 보기가 번거로우면 가운데 항 하나만 맞춰 봐도 대부분 걸립니다 — 부호나 짝을 잘못 고르면 가장 먼저 어긋나는 곳이 거기입니다.
계수가 1이 아닌 이차식
앞 절의 셋째 갈래인 두 수 찾기는 x2 의 계수가 1일 때만 그대로 통합니다. 2x2+7x+3 처럼 앞에 수가 붙으면 한 걸음이 더 필요합니다.
가운데 항 쪼개기
(px+a)(qx+b)=pqx2+(pb+qa)x+ab
이 모양을 되돌리는 절차는 이렇습니다. 첫 계수와 끝 항을 곱한 수를 만들고, 그 수를 곱으로 갖고 가운데 계수를 합으로 갖는 두 수를 찾습니다. 그 두 수로 가운데 항을 쪼갠 뒤 둘씩 묶습니다.
2x2+7x+3 에서 첫 계수 2와 끝 항 3을 곱하면 6입니다. 곱이 6, 합이 7인 두 수는 1과 6 입니다. 가운데 7x 를 x+6x 로 쪼갭니다.
2x2+x+6x+3=x(2x+1)+3(2x+1)=(2x+1)(x+3)
항이 넷이 되었으니 앞 절에서 익힌 "둘씩 묶기"가 그대로 쓰였습니다. 도로 펴서 확인합니다. 2x2+6x+x+3=2x2+7x+3 으로 돌아옵니다. x=1 을 넣어도 왼쪽 2+7+3=12, 오른쪽 3×4=12 로 맞습니다.
공통인수 먼저 빼기
2x2+10x+12 를 위 절차로 풀려 하기 전에 모든 항에 2가 있다는 것부터 봅니다.
2x2+10x+12=2(x2+5x+6)=2(x+2)(x+3)
괄호 안이 계수 1짜리 이차식이 되었으므로 두 수 찾기를 그대로 쓰면 끝납니다. 공통인수를 가장 먼저 확인하라는 규칙이 여기서 값을 합니다 — 빼지 않고 갔으면 곱이 2×12=24, 합이 10인 두 수를 찾느라 후보를 훨씬 많이 훑어야 했습니다.
빼낸 2를 밖에 그대로 두는 것도 잊지 않습니다. (x+2)(x+3) 만 적으면 값이 절반이 됩니다.
후보의 개수
찾기가 막막하게 느껴지는 이유는 언제까지 찾아야 하는지를 모르기 때문입니다. 후보의 개수는 미리 셀 수 있습니다. 곱이 N 인 두 자연수 짝은 N 의 약수를 작은 쪽부터 반만 보면 다 나옵니다.
곱해서 만들 수
자연수 짝
개수
6
1·6, 2·3
2
12
1·12, 2·6, 3·4
3
24
1·24, 2·12, 3·8, 4·6
4
곱이 6이면 볼 짝이 둘뿐이라 두 번 보고 안 되면 그만입니다. 끝 항이 음수여서 부호가 다른 짝을 찾을 때는 각 짝마다 어느 쪽에 음수를 붙일지 두 경우가 있으므로 후보가 두 배가 됩니다.
세어 두면 찾기가 유한한 작업이 됩니다. 후보를 다 훑었는데 합이 안 맞으면 "내가 못 찾은 것"이 아니라 "정수로는 안 묶이는 식"입니다.
정수 범위의 한계
x2+x+1 을 봅니다. 곱이 1이고 합이 1인 두 정수를 찾아야 합니다. 곱이 1인 정수 짝은 1⋅1 과 (−1)⋅(−1) 둘뿐인데, 합이 각각 2와 −2 라 1이 되지 않습니다. 후보를 다 훑었으므로 이 식은 정수 범위에서 인수분해되지 않습니다.
이런 식이 예외가 아니라 흔합니다. x2+1 도, x2−2 도 정수로는 안 묶입니다. x2−2 는 (x+2)(x−2) 로 근호까지 쓰면 묶이지만, 어디까지를 쓸 수 있는 수로 볼 것인가에 따라 답이 달라집니다. 이 글에서는 정수 계수까지만 다룹니다.
어떤 이차식이 묶이고 어떤 것이 안 묶이는지를 후보를 훑지 않고 한 번에 판정하는 방법은 23번 · 이차함수와 포물선의 판별식이 맡습니다. 삼차 이상의 인수분해도 이 과정에서는 쓰지 않으므로 다루지 않습니다.
곱셈 공식은 전부 항등식이고, 그래서 아무 값이나 넣어 검산할 수 있습니다. 전개와 인수분해도 같은 식을 다른 모양으로 적은 것이니 마찬가지입니다. 이 글 전체에서 검산이 늘 "아무 값이나 넣어 보기"였던 이유가 이것입니다. 방정식을 실제로 푸는 절차는 16번 · 일차방정식과 이항의 몫입니다.
연습 문제
두 연습 모두 x=2 를 넣어 검산하세요. 전개나 인수분해는 같은 식을 다른 모양으로 적은 것이므로, 어떤 값을 넣어도 양쪽 값이 같아야 합니다. 다르면 어딘가 틀린 것입니다.
연습 1 — 전개 열 문제
3(x+4)
3x+12. x=2 에서 양쪽 다 18.
−2(x−5)
−2x+10. 부호에 주의합니다. x=2 에서 양쪽 다 6.
x(x+7)
x2+7x. x=2 에서 양쪽 다 18.
(x+3)(x+5)
x2+8x+15. x=2 에서 5×7=35 이고 4+16+15=35.
(x−2)(x+6)
x2+4x−12. x=2 에서 양쪽 다 0.
(x+4)2
x2+8x+16. x=2 에서 양쪽 다 36.
(x−5)2
x2−10x+25. x=2 에서 양쪽 다 9.
(x+7)(x−7)
x2−49. x=2 에서 9×(−5)=−45 이고 4−49=−45.
(2x+1)(x−3)
2x2−5x−3. x=2 에서 5×(−1)=−5 이고 8−10−3=−5.
(3x−2)2
9x2−12x+4. x=2 에서 42=16 이고 36−24+4=16.
연습 2 — 항이 셋인 괄호 세 문제
곱이 몇 개 나와야 하는지 먼저 적고 시작하세요.
(x+1)(x2+2x+3)
곱은 2×3=6 개입니다. x3+2x2+3x+x2+2x+3=x3+3x2+5x+3. x=2 에서 3×11=33 이고 8+12+10+3=33.
(x−3)(x2+x−2)
곱은 6개입니다. x3+x2−2x−3x2−3x+6=x3−2x2−5x+6. x=2 에서 (−1)×4=−4 이고 8−8−10+6=−4.
(a+b+c)2 을 전개하고 항이 여섯인지 세어 보세요.
곱은 3×3=9 개이고, 그중 셋이 제곱이며 나머지 여섯이 둘씩 합쳐집니다. a2+b2+c2+2ab+2bc+2ca 로 항이 여섯입니다.
연습 3 — 합차 공식으로 수 계산 세 문제
98×102
(100−2)(100+2)=10000−4=9996.
47×53
(50−3)(50+3)=2500−9=2491.
1.02×0.98
(1+0.02)(1−0.02)=1−0.0004=0.9996.
연습 4 — 인수분해 열 문제
6x+9
3(2x+3). x=2 에서 양쪽 다 21.
x2−5x
x(x−5). x=2 에서 양쪽 다 −6.
4x2+6x
2x(2x+3). x=2 에서 양쪽 다 28.
x2+9x+20
곱이 20, 합이 9인 두 수는 4와 5이므로 (x+4)(x+5). x=2 에서 양쪽 다 42.
x2−7x+12
끝이 양수이고 가운데가 음수이니 둘 다 음수입니다. (x−3)(x−4). x=2 에서 양쪽 다 2.
x2+2x−15
끝이 음수이니 부호가 다릅니다. (x+5)(x−3). x=2 에서 양쪽 다 −7.
x2−3x−10
(x−5)(x+2). x=2 에서 양쪽 다 −12.
x2+12x+36
36=62 이고 가운데가 2×6 이므로 (x+6)2. x=2 에서 양쪽 다 64.
x2−81
(x+9)(x−9). x=2 에서 양쪽 다 −77.
9x2−16
(3x)2−42 이므로 (3x+4)(3x−4). x=2 에서 양쪽 다 20.
연습 5 — 넷씩 묶기와 계수가 1이 아닌 이차식 다섯 문제
xy+2x+3y+6
앞 둘에서 x, 뒤 둘에서 3을 꺼내면 x(y+2)+3(y+2)=(x+3)(y+2).
2x2+5x+2
곱이 2×2=4, 합이 5인 두 수는 1과 4입니다. 2x2+x+4x+2=x(2x+1)+2(2x+1)=(2x+1)(x+2). x=2 에서 양쪽 다 20.
3x2+7x+2
곱이 6, 합이 7인 두 수는 1과 6입니다. 3x2+x+6x+2=x(3x+1)+2(3x+1)=(3x+1)(x+2). x=2 에서 양쪽 다 28.
3x2+12x+12
공통인수 3을 먼저 뺍니다. 3(x2+4x+4)=3(x+2)2. x=2 에서 양쪽 다 48.
x2+3x+5 를 정수 범위에서 인수분해할 수 있는지 판정하세요.
곱이 5, 합이 3인 두 정수를 찾아야 합니다. 곱이 5인 짝은 1⋅5 와 (−1)⋅(−5) 둘뿐이고 합이 6과 −6 이라 맞지 않습니다. 후보를 다 훑었으므로 정수 범위에서는 묶이지 않습니다.
연습 4의 3번을 x(4x+6) 이라고 적었다면 틀린 것은 아니지만 다 푼 것도 아닙니다. 괄호 안에 아직 공통인수 2가 남아 있습니다. 인수분해는 더 이상 안 쪼개질 때까지 갑니다.
정리
전개는 분배법칙을 문자로 확장한 것입니다. 앞 괄호의 각 항을 뒤 괄호의 각 항에 하나씩 곱합니다. 두 자리 수의 세로셈에서 자리별로 곱하던 것과 같은 절차입니다.
곱이 몇 개 나와야 하는지 먼저 셉니다. 앞 항 수와 뒤 항 수의 곱이고, 다 적고 나서 개수가 모자라면 빠뜨린 것입니다.
부호는 항에 붙여 다닙니다.x−5 를 "x 와 −5"로 읽으면 곱할 때 부호가 저절로 따라갑니다.
곱셈 공식은 정사각형 넓이 그림에서 매번 복원할 수 있습니다.(a+b)2 이 a2+b2 이 아닌 이유가 그림의 가운데 두 조각입니다. (a−b)2 은 b 대신 −b 를 넣은 것이라 따로 외울 것이 아닙니다.
합차 공식은 수 계산 요령으로도 씁니다 — 103×97=1002−32.
인수분해는 셋으로 나눠 익힙니다 — 공통인수 빼기, 곱셈 공식 되돌리기, 곱이 끝 항이고 합이 가운데 항인 두 수 찾기. 항이 넷이면 둘씩 묶어 공통인수를 만듭니다.
계수가 1이 아닌 이차식은 첫 계수와 끝 항의 곱을 곱으로, 가운데 계수를 합으로 갖는 두 수로 가운데 항을 쪼갠 뒤 둘씩 묶습니다. 공통인수를 먼저 빼면 이 단계가 아예 없어지기도 합니다.
후보의 개수는 미리 셀 수 있습니다. 다 훑었는데 합이 안 맞으면 정수로는 안 묶이는 식입니다.
묶었으면 도로 전개해 원래 식으로 돌아오는지 봅니다. 전개와 인수분해는 같은 식을 다르게 적은 것이므로 아무 값이나 넣어 검산할 수 있습니다.
다음 글에서는 방정식을 실제로 풉니다. 2x+1=7 에서 x 를 찾아내는 절차, 그리고 양변에 같은 것을 해도 등호가 유지된다는 원칙을 손에 익힙니다.
실수를 2^b개 격자에 사상할 때 오차의 분산이 왜 Δ²/12인지 유도하고, 그것이 비트당 6.02dB라는 SNR로 번역되는 과정을 실측과 대조했습니다. 이상치 하나가 나머지 값의 유효 비트를 어떻게 먹는지, 그리고 int4에서 성능이 무너지는 지점을 오차 예산으로 미리 계산하는 법까지.
최댓값 빼기, 로그 공간, log1p·expm1, 분산의 두 공식, 정규화의 ε, fp32 누산, 역행렬 대신 solve — 프레임워크가 몰래 해 주는 일곱 가지를 하나씩 꺼내 각각 어떤 고장을 막는지 직접 재 봤습니다. 수식을 그대로 옮긴 코드가 왜 라이브러리보다 나쁜지에 대한 목록입니다.
0.1 + 0.2가 0.3이 아닌 이유부터 시작해 머신 엡실론을 유도하고, 같은 16비트인데 fp16과 bf16이 서로 다른 지점에서 터지는 이유, 비슷한 수를 뺄 때 유효자리가 사라지는 파괴적 상쇄, 그리고 1,000만 개를 순서만 바꿔 더했을 때 오차가 백만 배 갈리는 실험까지 직접 재 봤습니다.