乘法乘法是一个基本的二元运算符,写做\(ab\),\(a \times b\),\(a(b)\)或\(a \cdot b\)(读作\(a\)乘\(b\))。乘法可以用重复的加法定义为(仅对于自然数):
\[a \times b = \underbrace{a + a + \cdots + a + a}_b.\]
举例来说,\(3 \times 4 = 3 + 3 + 3 + 3 = 12\)。\(a \times b\)中的\(a\)和\(b\)被称作乘数,其结果被称作积。
对于所有实数,\(x \times y\)的乘积定义为有理数柯西序列等价类的乘积。对于正实数\(x\)和\(y\),\(x \times y\)可以被认为是矩形的宽和长的乘积(即求面积)。
与加法相同,对于所有自然数和实数,乘法也具有交换律和结合律:\(a \times b = b \times a\)和\((a \times b) \times c = a \times (b \times c)\)。重复的乘法被称作幂次。
然而,乘法在序数上是不可交换的。对于任何无限序数\(\alpha\),\(2 \times \alpha = \alpha \neq \alpha \times 2\)。
自然数的乘法可以用递归的方式定义为:
\begin{eqnarray*} a \times 0 & = & 0 \\ a \times (b+1) & = & (a \times b) + a \end{eqnarray*}
在大数学中,乘法是超-2预算,即超运算中的第二个运算。
其他属性[]
- \(0 \times n = 0\)
- \(1 \times n = n\)
- \((-a) \times (-b) = a \times b\)
- \((-a) \times b = a \times (-b) = -(a \times b)\)
图灵机代码[]
给定输入形式(字符串的a 1)(字符串的b 1),它输出字符串的a*b 1。
0 1 _ r 1 0 _ _ r 9 1 1 1 r 1 1 _ _ r 2 2 1 _ r 3 2 _ _ l 7 3 1 1 r 3 3 _ _ r 4 4 1 1 r 4 4 _ 1 l 5 5 1 1 l 5 5 _ _ l 6 6 1 1 l 6 6 _ 1 r 2 7 1 1 l 7 7 _ _ l 8 8 1 1 l 8 8 _ _ r 0 9 1 _ r 9 9 _ _ r halt
时间复杂度[]
0 | 1 | 2 | 3 | 4 | |
---|---|---|---|---|---|
0 | 2 | 7 | 14 | 23 | 34 |
1 | 3 | 14 | 29 | 48 | 71 |
2 | 4 | 25 | 56 | 97 | 148 |
3 | 5 | 40 | 95 | 170 | 265 |
4 | 6 | 59 | 146 | 267 | 422 |
通过上表,我们可以推断出该程序的时间复杂度为
\(T(a,b)=(b^{2}+1)a^{2} + (b+2)^{2}a + b + 2\)
如果把它展开,就会有\(T(a,b)=a^{2}b^{2} + a^{2} + ab^2 + 4ab + 4a + b + 2\)
关于用图灵机编写的程序的时间复杂度的更一般的推导方法,请参见图灵机在线模拟器(Morphett版本)和拉格朗日在线计算器
空间复杂度[]
程序的空间复杂度是未知的。
属性对算术的依赖[]
在ZFC论中,乘法的交换性和结合性等性质是成立的。然而,在鲁滨逊算术中,交换性不一定成立。所以,公式\(\forall a,b \in \mathbb{N} : a \times b = b \times a\)与鲁滨逊算术无关。