乗法
算術における乗法 (じょうほう、テンプレート:Lang-en-short) は、算術の四則と呼ばれるものの一つで、整数では、一方の数 (被乗数、 テンプレート:Lang-en-short) に対して他方の数 (乗数、テンプレート:Lang-en-short) の回数だけ繰り返し和をとる(これを掛けるまたは乗じるという。)ことにより定義できる演算である。掛け算(かけざん)、乗算(じょうざん)とも呼ばれる。
逆の演算として除法をもつ。乗法の結果を積 (せき、テンプレート:Lang-en-short) と呼ぶ。
乗法は、有理数、実数、複素数に対しても拡張定義される。また、抽象代数学においては、一般に可換とは限らない二項演算に対して、それを乗法、積などと呼称する(演算が可換である場合はしばしば加法、和などと呼ぶ)。
目次
定義
(いずれも 0 でない)自然数 m (乗数)と n (被乗数)に対して、m を n 個分加えた数
- <math>\overbrace{m + m + \cdots + m}^{n {\rm\ times}}</math>
を
- m × n, m · n, mn
などのように書いて m に n を掛けた数とかmにnを乗じた数とか m と n の積、m 掛ける n などという。言語によってはその自然な語順から、同じく m を n 個分加えた数を
- n × m, n · m, nm
などのように上と逆順に記す場合もある(たとえば英語では n × m を n times m すなわち n 回の m と読むことがある。他方で、m × nと記してm multiplied by n、すなわち、nを乗じたmと読むこともある。)。
カメラのレンズ倍率やCDの倍速表示などは、英語のtimes表記である。言語の表記の都合による、こういった順序であるが、数値の乗算においては、この演算について交換法則が成り立つ(後述)という性質によって、どちらも同一視するテンプレート:要出典。
n = 0 のときは、n × m = 0 × m は 0 であると約束する。
さらに整数同士の乗法は、負の整数を掛けるという事を以下のように定める: 整数 m と自然数 n に対して
- m × (−n) := (−m) × n
すなわち、「負の整数 −n を掛ける」ということを、「対応する正の整数 n の数だけ符号を反転した整数(ここでは −m)を加える」という演算として定義する。
性質
n と m が自然数であるとき、n を m 個加えるたものと m を n 個加えたものは同じ数である。すなわち
- 交換法則: n × m = m × n
が成り立つ。また、回帰的に複数回の乗法を行ったものは積をとる順序によらない。すなわち
- 結合法則: (n × m) × l = n × (m × l)
が成り立つ。3 つの数の積は
- n × m × l := (n × m) × l = n × (m × l)
とする(4 つ以上の数の積も同様である)。ただし無限個の数の積についてはこの限りではない(詳細は総乗の項を参照されたい)。
積と和の間には次の法則が成り立つ:
- 分配法則: n × (m + l) = n × m + n × l
この性質は、乗法の一般化において重要な手がかりとなる。
乗法の一般化
分数
掛け算は割り算を統合する。すなわち、「q で割る」という除法の計算を「q の逆数 1/q を掛ける」という操作とみなす。
- x × (p / q) := (x × p) ÷ q.
- <math>
\frac{p}{q}\times\frac{r}{s}:= \frac{p\times r}{q\times s}
</math>
この定義は、割合の計算を考えることにより意味づけすることができる。
多項式
分配法則が成り立つものとして多項式同士の積が定義できる。
アーベル群
自然数や整数における上記の積の定義を再考すれば、加えられる対象である m は自然数や整数に限らずともよいことがわかる。実際、x として有理数や実数など和が定義できるものを考えれば、x を繰り返し加えることとして自然数を掛けることができる。また整数を掛けるためには、数 x は加法的逆元(マイナスの数)が定義できるものであれば何でも良い。すなわち x をあるアーベル群の元とするとき、n が整数であれば
- <math>nx = \begin{cases}
\overbrace{x + x + \cdots + x}^{n {\rm\ times}} & n > 0 \\ 0 & n = 0 \\ \underbrace{(-x) + (-x) + \cdots + (-x)}_{|n| {\rm\ times}} & n < 0
\end{cases}</math> として n を掛ける操作を定義できる。このことを「整数全体の集合はアーベル群に自然に作用する」と言い表す。
乗算アルゴリズム
アバカス
紀元前2700年から紀元前2300年にかけてのシュメールでアバカスが使われ、楔形文字で記された粘土板の乗算表が発見されている。紀元前2世紀にはテンプレート:仮リンクが中国に伝えられた。算盤には乗法を素早く計算する技法が発達していた。
日本の記録では『日本風土記』(1570年代)に「そおはん」という呼称で出てくるのが初出である。現在も、新頭乗法、頭乗法、尾乗法などの乗算アルゴリズムが使われている。
エジプト数学
日本の算術
対数
ジョン・ネイピアは、科学で必要な計算を簡単にするべく計算技術として対数の概念を導入し、テンプレート:仮リンク(1598年)を発表した。古くから<math>AB=\mathrm{e}^{\log{}A+\log{}B}</math> という等式を利用する乗算の方法が知られており、対数表によって積の計算を和の計算に置き換えて近似値を求めることが出来るようになった。対数の導入によって、ヨハネス・ケプラーの天体軌道計算などの科学計算が可能となり、科学の急激な発展をもたらした。 エドマンド・ガンターが対数尺(1620年)を、ウィリアム・オートレッドが2つの対数尺を組み合わせた計算尺(1632年)を発明し、電卓が普及する1980年代まで使用された。
機械式計算機
科学の急激な発展と共に、より精度の高い対数表に対する需要が大きくなった。 マルティン・ヴィーベリは、1875年に対数表を作成することが出来る階差機関に似た機構を持つ機械を発明した。 アナログ乗算器でも対数を用いた<math>AB=\mathrm{e}^{\log{}A+\log{}B}</math> という等式を利用する方法が用いられていた。
コンピュータ
符号付整数
ENIACの開発において、アーサー・バークスが初めてデジタル乗算器を開発した。 デジタル乗算器では、ブースの乗算アルゴリズムと呼ばれる方法が開発された。加算よりも高速なビット演算の算術シフトを利用して高速化している。
多倍長乗算
- カラツバ法(1960年)
- en:Toom–Cook multiplication(1963年)カラツバ法はToom-3の特別な場合である。
- テンプレート:仮リンク(1971年)1965年に高速フーリエ変換/離散フーリエ変換のテンプレート:仮リンクが発見され、FFTを使う方法が開発された。ショーンハーゲ・ストラッセン法は、カラツバ法やToom-3より高速なアルゴリズムである。
- en:Fürer's algorithm(2007年)Schönhage–Strassenより高速。
行列
- シュトラッセンのアルゴリズム(1969年)