최근 수정 시각 : 2026-08-24 16:21:48

곱셈


연산
Numbers and Operations
{{{#!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진법) · 분수(분모 · 분자 · 단위분수 · 기약분수 · 가분수 · 번분수 · 연분수 · 통분 · 약분) · 소수{유한소수 · 무한소수(순환소수 · 비순환소수)} · 환원 불능 · 미지수 · 변수 · 상수
연산 사칙연산(덧셈([math(Sigma)]) · 뺄셈 · 곱셈(구구단 · [math(Pi)]) · 나눗셈( · 나머지)) · 역수 · 절댓값 · 제곱근(이중근호) · 거듭제곱 · 로그(상용로그 · 자연로그 · 이진로그) · 역산 · 테트레이션 · 검산 · 연산자 · 교환자 · 계승
방식 암산(방식) · 세로셈법 · 주판 · 산가지 · 네이피어 계산봉 · 계산기 · 계산자
용어 이항연산{표기법 · 이항연산의 성질(결합법칙 · 분배법칙 · 소거법칙 · 교환법칙 · 흡수법칙 · 멱등법칙)} · 항등원 · 역원 · 흡수원
기타 수에 관련된 사항(0과 1 사이의 수 · 음수 · 작은 수 · 큰 수) · 혼합 계산(48÷2(9+3) · 111+1×2=224 · 2+2×2) · 0으로 나누기(바퀴 이론) · 0의 0제곱 }}}}}}}}}

#!style
table.symbol td { border: 1px solid black;}
table.symbol tr { border: 1px solid black;}
'border: 1px solid black; text-align: center; border-radius: 10px; max-width: 500px'>
연산자이름'padding: 14px; font-size: 4em'>[math(연산자기호'wiki' style='background-color:transparent;border: 2px solid transparent;width:100%'> <tableclass=symbol> 연산자이름'2'> 세부설명예시예시설명'2' style='background-color:black'><rowif=영어> 영어'2'><rowif=다른형태다른형태2다른형태3> {{{#!folding [ 다른 형태 펼치기 · 접기 ]<rowif=다른형태> 다른형태다른형태2> 다른형태2다른형태3> 다른형태3@ }}}


1. 개요2. 기호3. 교육4. 정의5. 예시6. 성질7. 곱셈의 역연산 나눗셈8. 큰 수의 곱셈 알고리즘9. 언어별 명칭10. 기타

1. 개요

곱셈(multiplication) 또는 곱하기, 승법(), 승산()은 덧셈의 반복으로부터 유도된 연산이다. 따라서 덧셈을 배우고 나서 곱셈을 배우게 된다. 대표적 이항연산 네 가지인 사칙연산 중 하나이다. 가감승제의 (乘)에 해당한다. 영어로 'times'는 '~번'을 의미하며 'multiplied by'와 같은 뜻이다.

2. 기호

항상 [math(+)]나 [math(-)]로 표기되는 덧셈·뺄셈과는 달리 다양한 기호를 사용하는 것이 특징이다.
  • 일반인과 수학계에서 선호되는 기호는 2가지#
    • 가장 기초 수준에서 배우며 대표적 곱셈 기호인 [math(\times)][1]
    • 고등 교육 과정[2]에서 사용하는 [math(cdot)] [3]
  • 그 밖에 기호의 예시
    • 연산자를 생략하는 투명 기호. 각 요소는 혼동되지 않도록 괄호로 둘러싸여 구분된다. [math((3)(4))]
    • 컴퓨터에서 X와의 혼동을 피하기 위한 *[4]
    • 벡터텐서를 만들 때 사용하는 ⊗

초등학교에서 처음으로 배울 때 쓰이는 곱셈 기호 [math(\times)]는 윌리엄 오트레드산술의 원리를 논하기 위해 1631년에 쓴 책 <수학의 열쇠>에서 처음 쓰였다. 이 당시만 해도 곱셈은 매우 수준 높은 연산이어서 대학교에나 가서 배울 수 있던 지식이었는데, [math(\times)]의 도입으로 처음으로 곱하기를 추상화할 수 있게 된다. 여담이지만 원래 [math(+)]를 쓰려 했는데 이미 존재해서 '그래? 그럼 돌려!' 해서 나온 게 이 기호라는 속설이 있다. 이 책에서는 뺄셈에 ~ 기호를 사용했다.

또한 기호 [math(\cdot)] 는 동시대 수학자인 토마스 해리엇[5]이 자주 썼으며, 후에 라이프니츠가 본격적으로 채용한 뒤로 널리 퍼졌다고 한다.

곱셈 기호를 생략하는 경우는 숫자와 문자, 문자끼리의 곱에만 해당된다. 미분방정식에서 델([math(nabla)])에 투명 기호가 쓰인 것은 그레이디언트(경사, grad)라는 연산으로 따로 정의한다.

수열의 곱하기는 곱[6]을 의미하는 Product에서 유래한 [math(Pi)]를 쓴다. 곱의 기호 문서 참고.

3. 교육

보통 초등학교 2학년 때 배우나, 과거 일제강점기 간이학교에서는 1학년 때 배우기도 했다. 1940년 발행된 간이학교 2학년 산수 교과서 1단원의 '前學年ノ復習'(현대 일본어로 쓰면 前学年の復習. 직역하면 '전 학년 내용 복습하기'.) 단원에 곱하기 문제가 일부 수록돼 있다. 이는 간이학교가 2년제 속성 초등교육기관이었기 때문에 일반 소학교에서 6년 동안 배울 내용을 2년 동안 압축해서 배우기 때문이다.

4. 정의

대한민국의 초등학교에서 처음 곱셈을 배울 땐 덧셈의 반복으로 정의한다.

[math(2+2+2=6)]에서 2가 3번(times) 더해졌으니 [math(2×3=6)]

서양 쪽 언어에서는 동양과의 어순이 보통 다르기 때문에 이를 다르게 해석한다.

[math(5×3=15)]를 5가 3번(times) 쓰인 [math(5+5+5=15)]로 보지 않고 5번의 3(5 times 3)으로 [math(3+3+3+3+3=15)]로 본다는 것.

사실 이러한 정의가 맞는지에 대해서는 서양에서 한 차례 논란이 된 적이 있다. Presh Talwalker의 영상.

서양에서는 곱셈식에서 [math(A×B = C)]와 같은 형태일 때, 곱셈 기호 × 왼쪽의 수 A를 Multiplier(곱하는 수, 승수), 오른쪽의 수 B를 Multiplicand(곱해지는 수, 피승수), 곱한 결과 C를 Product(곱, 적)라고 정의하고 가르치고 있기 때문에, 특히 자연수 A와 B의 곱셈을 B를 A번(times) 더하는 연산으로 정의한다. 한국에서는 이와 반대로 가르치는 경우가 많다.

하지만, 이 개념으로 곱셈을 인지하고 있다가 수 체계의 범위가 넓어질 때, 즉 [math((-2)×(-3))]같은 음수 곱하기 음수나 분수 곱하기 분수 등으로 넓어지는 때에 조금씩 흔들리다가 [math((0.12)×(5.3))]같은 소수 곱하기 소수 등에 다다라서는 이해의 한계에 도달하는 게 보통이다. 그나마 교육과정에서 분수의 곱셈은 분모와 분자끼리의 곱셈이라고 규칙을 배우기 때문에 따르는 정도이다.

그러다가 아예 [math(π×e)]같은 무리수를 포함하는 실수 개념으로 넘어오면 그냥 덧셈의 반복으로 곱셈을 이해하는 것은 불가능하다. 사실 실수의 곱셈 이전에 실수의 완비성이 엄밀하게 정의되어야 하는 등 기초 작업이 많이 필요한 일이지만 실수의 완비성마저 엄밀한 집합론 및 해석학이 동원되어야 하는 고행길을 걸어가야 하기 때문에, 고등학교에서는 "곱셈? 그거 그냥 두 개 붙이면 되는 거 아닌가?" 하고 그러려니 하고 넘기며, 어차피 무리수 역시 적당히 가까운 유리수와 비교하여 대충 그 사이에 있는 숫자다 하는 개념으로 넘어가는 것이 고등학교 수준에선 가장 납득이 가는 설명일 것이다.

덧셈에서 곱셈으로 확장되듯이 곱셈도 "몇 번 곱해졌나"의 개념으로 지수로 확장될 수 있으며 실수/허수로 들어서면 이런 사고방식 또한 무뎌진다. 지수 역시 테트레이션이라는 상위의 연산으로 확장될 수 있고, 필요하다면 지수와 같은 방식으로 실수같은 간극이 메워질 수 있다. 이것이 하이퍼 연산 개념으로, 수학적 합리성을 추구하기 위한 엄밀한 정의라는 개념을 벗어난 상당히 직관적인 과정이 수학적 사고에 미치는 영향을 엿볼 수 있다. 또한 반대 과정 역시 생각할 수 있다. 일례로 로그를 쓰면 곱셈을 덧셈으로 취급할 수 있다. 자세한 것은 로그 문서 참조.

대학에서 추상대수학을 배우기 시작하면서부터는 보통 덧셈 위에 분배되는 아무 연산을 곱셈이라고 한다. 선형대수학에서 다루는 벡터외적이나 행렬의 곱이 대표적인 예. 이는 벡터의 회전변환에 사용되는 사원수의 곱셈 역시 매우 복잡한데, 이 사원수의 곱셈에서 벡터의 곱셈 개념이 도출되기도 했기 때문이다. 사실 수학을 더 깊게 공부하다 보면 가환성을 띄지 않는 곱셈이 더 많다. 예를 들어 집합의 곱셈이라든가, 유한수열의 결합이라든가, 관계나 함수의 합성이라든가.

기하학적으로는 유클리드 공간상에서 각 축에 평행한 선분으로 구성된 도형[7]측도를 구하는 연산으로 볼 수 있다. 이러한 곱셈을 통해 측도를 구하는 개념 때문에, 이를테면 직사각형의 넓이를 가로와 세로의 곱으로 구할 수 있게 되는 것이다.

5. 예시

곱셈구조는 상당히 다양하다. 그 중 대표적인 것은 다음과 같다.이 중 첫번째는 (홀수)×(홀수) = (홀수), (홀수)×(짝수) = (짝수), (짝수)×(홀수) = (짝수), (짝수)×(짝수) = (짝수) 라는 대표적인 예제가 존재한다.

또한 (양수)×(양수) = (양수), (양수)×(음수) = (음수), (음수)×(양수) = (음수), (음수)×(음수) = (양수) 라는 성질도 존재한다.[8]

6. 성질

  • 복소수와 그 부분집합은 곱셈이 적용되는 경우 교환법칙이 항상 성립한다. 즉 [math( ab = ba )].
    • 다만, 사원수, 벡터, 행렬 등의 선형 결합을 포함하는 구조를 가진 곱셈의 교환법칙은 일반적으로 성립하지 않는다.
  • 사원수까지의 수체계와 선형 결합을 가진 수 체계에 대해서 결합법칙이 성립한다. 즉 [math( (ab)c = a(bc) )].
    • 다만, 팔원수 이상의 케일리-딕슨 구성에선 결합법칙은 일반적으로 성립하지 않는다.
  • 덧셈, 뺄셈에 대한 분배법칙이 성립한다. 즉 [math( a (b + c) = ab + ac )].
  • 복소수와 그 부분집합은 편각(부호)의 합과 절댓값의 곱으로 분해할 수 있다(극형식). 즉 [math( ab = \operatorname{cis}(\arg a + \arg b) |a||b|)] (단, [math(operatorname{cis}(x) triangleq cos x + isin x)]).

한편, 가환군인 경우 이를 이용한 특수한 계산 법칙이 있다. 여기에 대해서는 곱셈 공식, 인수분해 참조.

7. 곱셈의 역연산 나눗셈

곱하는 것이 있다면 나누는 것도 있기 마련인데 이를 나눗셈이라고 한다. 초등교육 과정에서는 ÷이라는 기호를 쓰나, 그 정체는 다름 아닌 분수. 그래서인지 중등 교육과정부터는 아예 역수를 곱하는 것으로 나눗셈을 대체한다. 많은 컴퓨터 프로그래밍 언어에서는 곱셈을 ×대신 *로 표현하듯이, 나눗셈을 나타낼 때 ÷ 대신 /를 사용한다.

나눗셈을 할 때 주의할 것이, 0으로 나눠서는 안 된다는 것이다. 곱셈의 성질에 의해 0을 곱해서 0이 아닌 수가 나올 수가 없기 때문이다.

기타 자세한 내용은 0으로 나누기 문서 참조.

8. 큰 수의 곱셈 알고리즘

두 개의 [math(n)] 자리수 정수를 곱할 때 일반적으로 우리가 아는 곱셈 방법을 적용한다면, 계산에 걸리는 시간은 각 자리수에 있는 숫자끼리 서로 한 번씩 곱셈이 이루어지는 총 횟수인 [math(n^2)]에 비례한다. 이것을 알고리즘의 시간 복잡도를 점근적으로 표현하는 Big-O 표기법으로는 [math(\mathcal{O}(n^2))]로 나타낼 수 있다.

그런데 컴퓨터 과학이 발전하면서, 수 천 자리 이상의 큰 수의 곱셈에 대해 기존 방법보다 효율적인 여러 곱셈 알고리즘이 개발되었다.

최초로 발견된 빠른 곱셈 알고리즘으로, 소련 태생의 러시아 수학자인 아나톨리 카라추바[9]가 1960년에 발견하고 1962년에 발표한 카라추바 알고리즘에 따르면 연산을 [math(\mathcal{O}(n^{\log_23}) \approx \mathcal{O}(n^{1.585}))]로 가속할 수 있다.

이후 카라추바 알고리즘을 일반화시킨 톰-쿡 알고리즘 [math(\mathcal{O}(n^{\log_35}) \approx \mathcal{O}(n^{1.465}))][10]고속 푸리에 변환(FFT)을 도입한 쇤하게-슈트라센 알고리즘 [math(\mathcal{O}(n\log n \cdot \log\log n))], 퓌러 알고리즘 [math(\mathcal{O}(n\log n \cdot 2^{\mathcal{O}(\log^* n)}))][11] 등이 개발되게 된다.

현재까지 알려진 가장 빠른 곱셈 알고리즘은 퓌러(Fürer) 알고리즘을 개량하여 2019년에 발표한 하비-판데르후번 알고리즘 [math(\mathcal{O}(n\log n))]이며, 수학자들은 이것을 이론적으로 가능한 가장 빠른 곱셈 알고리즘일 것으로 예상하고 있다.

그러나 비행기와 자동차를 동시에 출발시켰을 때 초반에는 자동차가 더 빠를 수 있는 것처럼[12], 상기한 빠른 곱셈 알고리즘들은 일반 곱셈법과 비교하여 언제나 절대적으로 빠른 것이 아니라, 어디까지나 이론적인 영역에서 곱하는 수의 자릿수를 키울수록 점근적으로, 즉 '장기적으로 결국에는' 빨라질 것이라는 것을 의미한다. 예를 들어, 실제 컴퓨터의 작동 원리에 의한 계산 속도를 고려한다면 카라추바 알고리즘의 경우에는 320~640비트 이상의 자리수를 가지는 큰 수끼리의 곱셈에서 일반적인 곱셈보다 더 효율적인 것으로 알려져 있으며, 가장 최근에 발표된 하비-판데르후번 알고리즘의 경우에는 무려 [math(2^{4096})] 비트 = [math(2^{2^{4096}})] 이상의 큰 수 곱셈부터 효율적일 것이라고 한다.

따라서 이런 알고리즘들은 '일상적으로 보기 힘들 정도로 큰 수'들을 곱할 때나 효율적이지, [math(2^{256})][13]처럼 작은(?) 수들은 일반적인 곱셈 알고리즘을 사용하는 것이 오히려 더 빠르다.

9. 언어별 명칭

<colbgcolor=#f5f5f5,#2d2f34> 언어별 명칭
기호 ×, , *, [math(Pi)], 생략
한국어 곱셈, 곱하기, 승법(), 승산()
영어 multiplication, multiply[14]
일본어 [ruby(乗法, ruby=じょうほう)], [ruby(掛け算, ruby=かけざん)], [ruby(乗算, ruby=じょうざん)]
중국어 乘法(chéngfǎ)

10. 기타

개요에서 서술했듯이 곱셈 기호로 여러 가지를 사용하고 하나의 식에서 그것이 혼용이 되어서 사용하기도 하기 때문에 간혹 논란이 발생하기도 한다. 48÷2(9+3) 참고. 2(9+3)을 곱셈기호가 생략된 것으로 보는지, 하나의 항으로 보는지에 따라 답이 갈려 논쟁이 되었다.

일명 '인도식 계산법'으로 알려진 선을 이용한 계산법이 존재한다. 예를 들어 a와 b라는 숫자가 있다면, a를 가로방향, b를 세로방향으로 선을 긋되 자리수 별로 평행하게 그어, 둘에 교차점을 더하는 방식으로 답을 구하는 방식이다. 한국과 일본에선 흔히 ‘인도식' 계산법으로 알려져 있으나, 이 계산법이 인도에서 처음 쓰였다는 명확한 자료는 존재하지 않는다. 오히려 서양에서는 '일본식' 곱셈 계산법(Japanese multiplication)으로 알려져 있으며, 이 밖에도 중국에서 쓰였다는 설이 존재하는 등, 이 계산법의 유래에 대해서는 알려지는 바가 없다. 이 계산법을 수식화한 것도 있다. #
[1] 벡터에서는 외적(cross product), 선형대수학에서는 회전(curl)을 나타낸다.[2] 22개정 교육과정부터는 중학교에선 사용되지 않음[3] 벡터에서는 내적(dot product), 선형대수학에서는 발산(div)을 나타낸다.[4] 수학에서는 쌍대(duality), 합성곱(convolution), 켤레전치(conjugate transpose) 등의 용도로도 쓰인다.[5] 해리엇은 지수 기호, 부등호 역시 발명하고, 갈릴레이와 독립적으로 흑점을 발견하는 등, 상당히 많은 일을 했던 사람이다.[6] 여러 수를 모두 곱한 결과를 의미한다[7] 직사각형, 직육면체[8] 이를 일반화하면 아래와 같다.
[math( \displaystyle \arg{ \biggl[ \prod_{k=1}^{n} a_{k} \biggr]}=\sum_{k=1}^{n} \arg{ a_{k} } )]
[9] 1937~2008. 놀라운 것은 그가 카라추바 알고리즘을 발견할 당시 불과 23세의 학생이었다는 것이며, 그것도 일주일만에 찾아냈다는 것이다.[10] 가장 대표적인 Toom-3 알고리즘의 경우[11] 여기서 [math(\log^*)]는 반복 로그[12] 이 영상의 4분 부분부터 참고[13] 관측 가능한 우주에 존재하는 모든 원자들의 개수([math(\approx2^{272.3981037808})])와 얼추 비슷하다. 참고로 256비트 수의 곱셈은 64비트 아키텍처에서 지원하지 않기 때문에 직접 구현해야 한다.[14] 영어로 'times'는 '~번'을 의미하며 'multiplied by'와 같은 뜻이다.

분류