乗法

乗法は、算術の四則演算と呼ばれるものの一つで、整数では、一方の数  に対して他方の数  の回数だけ繰り返し加えていくことにより定義できる二項演算である。掛け算、乗算とも呼ばれる。代数学においは、変数の前の乗数は係数と呼ばれる。

逆の演算として除法をもつ。乗法の結果を積  と呼ぶ。

乗法は、有理数、実数、複素数に対しても拡張定義される。また、抽象代数学においては、一般に可換とは限らない二項演算に対して、それを乗法、積などと呼称する。

1. 定義
-----

自然数 //m// と //n// に対して、//m// を //n// 個分加えた数

を

//m// × //n//, //m// · //n//, //mn//などのように書いて //m// に //n// を掛けた数や //m// に //n// を乗じた数や //m// と //n// の積、//m// 掛ける //n// などという。言語によってはその自然な語順から、同じく //m// を //n// 個分加えた数を

//n// × //m//, //n// · //m//, //nm//などのように上と逆順に記す場合もある。

カメラのレンズ倍率やCDの倍速表示などは、英語のtimes表記である。言語の表記の都合による、こういった順序であるが、数値の乗算においては、この演算について交換法則が成り立つという性質によって、どちらも同一視するdate=2011年11月}}。

//n// = 0 のときは、//n// × //m// = 0 × //m// は 0 であると約束する。

さらに整数同士の乗法は、負の整数を掛けるという事を以下のように定める: 整数 //m// と自然数 //n// に対して

//m// ×  :=  × //n//すなわち、「負の整数 −//n// を掛ける」ということを、「対応する正の整数 //n// の数だけ符号を反転した整数を加える」という演算として定義する。

1.1. 表記
-------

算術において、乗法はしばしば、記号 "×" を項の間に用いることで書かれる。すなわち、中置記法である。例えば、 　 この記号は Unicode で D7 でエンコードされている。 乗法には他の数学的表記もある。

乗法はドット記号によっても表される。通常位置は真ん中であるが、ピリオドとすることもある。ミドルドットの記法は、Unicode では 22C5 としてエンコードされていて、日本やアメリカ、イギリスでは標準的であり、ピリオドが小数点として用いられるその他の国々でも標準的である。ドット演算子の文字が利用可能でない時は、中黒    が用いられる。小数点としてコンマを用いるフランス等の国々では、ピリオドもミドルドットも乗法に用いられるdate=August 2011}}。
代数学において、変数を含む乗法はしばしば並置として書かれる。この表記はかっこで囲まれた量に対して用いることもできる。乗法の記号を省略することは、その部分の変数が他の変数の名前と一致してしまうときや、かっこの前の変数名が関数名と混同されるとき、あるいは演算の優先順位の正しい決定において、曖昧さを引き起こすことがある。
行列の乗法title=ベクトル？においては、クロス記号とドット記号の間には明確な違いがある。クロス記号は一般に2つのベクトルのクロス積を表し、その演算結果はベクトルであるが、ドット記号は、2つのベクトルのドット積を表し、演算結果はスカラーである。コンピュータープログラミングにおいては、アスタリスクを用いて書くのが最も一般的である。これは歴史的事情によるもので、多くのコンピュータは文字集合が小さく制限されていて乗法記号を持っておらず、しかしアスタリスクはすべてのキーボードに存在した。この使用法の起源はFORTRANプログラミング言語である。

数列の積は、ギリシャ文字パイの大文字Πを用いて書かれる。詳細は総乗を参照。

2. 性質
-----

//n// と //m// が自然数であるとき、//n// を //m// 個加えたものと //m// を //n// 個加えたものは同じ数である。すなわち

交換法則: //n// × //m// = //m// × //n//が成り立つ。また、回帰的に複数回の乗法を行ったものは積をとる順序によらない。すなわち

結合法則:  × //l// = //n// × が成り立つ。3 つの数の積は

//n// × //m// × //l// :=  × //l// = //n// × とする。ただし無限個の数の積についてはこの限りではない。

積と和の間には次の法則が成り立つ：

分配法則: //n// ×  = //n// × //m// + //n// × //l//この性質は、乗法の一般化において重要な手がかりとなる。

3. 乗法の一般化
---------

3.1. 分数
-------

掛け算は割り算を統合する。すなわち、「//q// で割る」という除法の計算を「//q// の逆数 1///q// を掛ける」という操作とみなす。

//x// ×  :=  ÷ //q//.この定義は、割合の計算を考えることにより意味づけすることができる。

3.2. 多項式
--------

分配法則が成り立つものとして多項式同士の積が定義できる。

3.3. アーベル群
----------

自然数や整数における上記の積の定義を再考すれば、加えられる対象である //m// は自然数や整数に限らずともよいことがわかる。実際、//x// として有理数や実数など和が定義できるものを考えれば、//x// を繰り返し加えることとして自然数を掛けることができる。また整数を掛けるためには、数 //x// は加法的逆元が定義できるものであれば何でも良い。すなわち //x// をあるアーベル群の元とするとき、//n// が整数であれば

として //n// を掛ける操作を定義できる。このことを「整数全体の集合はアーベル群に自然に作用する」と言い表す。

4. 乗算アルゴリズム
-----------

4.1. アバカス
---------

紀元前2700年から紀元前2300年にかけてのシュメールでアバカスが使われ、楔形文字で記された粘土板の乗算表が発見されている。紀元前2世紀には算盤が中国に伝えられた。算盤には乗法を素早く計算する技法が発達していた。

日本の記録では『日本風土記』に「そおはん」という呼称で出てくるのが初出である。珠算における乗法では、古くは頭乗法、尾乗法、中乗法などの方法が使われ、現在の標準的な方法は新頭乗法と両落としとなっている。

4.2. エジプト数学
-----------

4.3. 日本の算術
----------

4.4. 対数
-------

ジョン・ネイピアは、科学で必要な計算を簡単にするべく計算技術として対数の概念を導入し、対数表を発表した。古くから という等式を利用する乗算の方法が知られており、対数表によって積の計算を和の計算に置き換えて近似値を求めることが出来るようになった。対数の導入によって、ヨハネス・ケプラーの天体軌道計算などの科学計算が可能となり、科学の急激な発展をもたらした。エドマンド・ガンターが対数尺を、ウィリアム・オートレッドが2つの対数尺を組み合わせた計算尺を発明し、電卓が普及する1980年代まで使用された。

4.5. 機械式計算機
-----------

科学の急激な発展と共に、より精度の高い対数表に対する需要が大きくなった。マルティン・ヴィーベリは、1875年に対数表を作成することが出来る階差機関に似た機構を持つ機械を発明した。 アナログ乗算器でも対数を用いた という等式を利用する方法が用いられていた。

4.6. コンピュータ
-----------

4.6.1. 符号付整数
------------

ENIACの開発において、アーサー・バークスが初めてデジタル乗算器を開発した。 デジタル乗算器では、ブースの乗算アルゴリズムと呼ばれる方法が開発された。加算よりも高速なビット演算の算術シフトを使って高速化している。

4.6.2. 多倍長乗算
------------

カラツバ法
:en:Toom–Cook multiplicationカラツバ法はToom-3の特別な場合である。
ショーンハーゲ・ストラッセン法1965年に高速フーリエ変換/離散フーリエ変換のCooley-Tukey型FFTアルゴリズムが発見され、FFTを使う方法が開発された。ショーンハーゲ・ストラッセン法は、カラツバ法やToom-3より高速なアルゴリズムである。
:en:Fürer's algorithmSchönhage–Strassenより高速。

4.6.3. 行列
---------

シュトラッセンのアルゴリズム

5. 0から9までの乗算
------------------

九九の表では、一般に0の段・列は省略される。

6. 関連項目
-------

×
総乗
倍
かけ算の順序問題

7. 参考文献
-------

8. 外部リンク
--------

[1] and [2] at :en:cut-the-knot
[3]
[4]