在數學中,結合律(associative property)是二元運算可以有的一個性質,意指在一個包含有二個以上的可結合運算子的表示式,只要算子的位置沒有改變,其運算的順序就不會對運算出來的值有影響。例如,加法結合律表明三個數相加,無論是先把前面兩個數相加再加第三個數,還是先把后面兩個數相加再和第一個數相加,它們的和不變。結合律不應該和交換律相混淆,交換律會改變表示式中運算元的位置,而結合律則不會。
定義
群論中的概念。給定一個集合S上的二元運算·,如果對于S中的任意a,b,c。有:
a·(b·c) = (a·b)·c,
則稱運算·滿足結合律。形式上,一個在集合S上的二元運算*被稱之為可結合的若其滿足下面的結合律:
(x*y)*z=x*(y*z) ? x,y,z∈S。
運算的順序并不會影響到表示式的值,且可證明這在含有“任意”多個運算的表示式之下也依然是成立的。
舉例
加法和乘法
在算術中,實數的加法和乘法都是可結合的,即:
(x+y)+z=x+(y+z)=x+y+z
(x*y)z=x(y*z)=x*y*z
對于所有的實數x,y,z。復數和四元數的加法與乘法也是可結合的。八元數的加法是可結合的,但其乘法則是不可結合的。
最大公因數和最小公倍數
最大公因數和最小公倍數的運算都是可結合的:
gcd(gcd(x,y),z)=gcd(x,gcd(y,z))=gcd(x,y,z)
lcm(lcm(x,y),z)=lcm(x,lcm(y,z))=lcm(x,y,z)
對于所有的整數x,y,z。
集合交并
集合的交,并運算都滿足結合律:
交:(A∩B)∩C=A∩(B∩C)
并:(A∪B)∪C=A∪(B∪C)
矩陣乘法
矩陣乘法滿足結合律。一個A x B的矩陣乘以一個B x C的矩陣將得到一個A x C的矩陣,時間復雜度為A x B x C。因為線性變換是個可表示成矩陣的函數,其中的函數復合則可以用矩陣乘法來表示,立即可知矩陣乘法為可結合的。
函數復合
若M是某個集合且S為所有從M映射至M的函數所組成的集合,則在S上的函數復合的運算是可結合的:
(f°g)°h=f°(g°h)=f°g°h ? f,g,h∈S。
更一般性地,給定四個集合M、N、P和Q,且h:M→N,g:N→P、f:P→Q,則
(f°g)°h=f°(g°h)=f°g°h
和前面一樣。簡單地說,映射的復合總會是可結合的。
不可結合性
一個在集合S上的二元運算*若不滿足結合律,則稱之為不可結合的。表示成符號即為:
(x*y)*z≠x*(y*z) ? x,y,z∈S。
在此一運算下,運算的順序是有影響的。減法、除法和冪都是不可結合運算的簡單例子:
(5-3)-2≠5-(3-2)
(4/2)/2≠4/(2/2)
2^(1^2)≠(2^1)^2.
一般,當不可結合運算在一個表示出現多于一次時,括號就必須被使用來表示其運算順序。不過,數學家會對若干常見的不可結合運算采用一種特別的運算順序的規則。這單純只是個為了減少括號的語法約定。
二進制浮點數
在計算機科學中,由于采用二進制浮點數運算,因此加法不符合結合律。例如,以下兩個運算的結果在電腦中不相等:
(0.1+0.2)+0.3
0.1+(0.2+0.3)
使用相等運算符進行比較,會傳回假(false)。
參考資料 >