结合律





在數學中,結合律(associative laws)是二元運算可以有的一個性質,意指在一個包含有二個以上的可結合運算子的表示式,只要算子的位置沒有改變,其運算的順序就不會對運算出來的值有影響。亦即,重新排列表示式中的括號並不會改變其值。例如:


(5+2)+1=5+(2+1)=8{displaystyle (5+2)+1=5+(2+1)=8}(5+2)+1=5+(2+1)=8

上式中的括號雖然重新排列了,但表示式的值依然不變。當這在任何實數的加法上都成立時,我們說「實數的加法是一個可結合的運算」。


結合律不應該和交換律相混淆。交換律會改變表示式中運算元的位置,而結合律則不會。例如:


(5+2)+1=5+(2+1){displaystyle (5+2)+1=5+(2+1)}(5+2)+1=5+(2+1)

是一個結合律的例子,因為其中的括號改變了(且因此運算子在運算中的順序也改變了),而運算元5{displaystyle 5}52{displaystyle 2}21{displaystyle 1}1則在原來的位置中。再來,


(5+2)+1=(2+5)+1{displaystyle (5+2)+1=(2+5)+1}(5+2)+1=(2+5)+1

則不是一個結合律的例子,因為運算元2{displaystyle 2}2和5的位置互換了。


可結合的運算在數學中是很常見的,且事實上,大多數的代數結構確實會需要它們的二元運算是可結合的。不過,也有許多重要且有趣的運算是不可結合的;其中一個簡單的例子為向量積。




目录






  • 1 定義


  • 2 例子


  • 3 不可結合性


    • 3.1 二進位浮點數




  • 4 參考文獻


  • 5 參見





定義


形式上,一個在集合S{displaystyle S}S上的二元運算{displaystyle *}*被稱之為可結合的若其滿足下面的結合律



(x∗y)∗z=x∗(y∗z)∀x,y,z∈S{displaystyle (x*y)*z=x*(y*z)qquad forall x,y,zin S}(x*y)*z=x*(y*z)qquad forall x,y,zin S

運算的順序並不會影響到表示式的值,且可證明這在含有「任意」多個{displaystyle *!!!}*!!!運算的表示式之下也依然是成立的。因此,當{displaystyle *!!!}*!!!是可結合的時,運算的順序可以不需要去規範而不會使其意義不清,所以可以省略掉括號而簡單寫成:


x∗y∗z.{displaystyle x*y*z.,}x*y*z.,

不過,需要記住的是,改變運算的順序並不包含或允許以移動表示式中的運算元來改變其真實的運算。



例子


一些可結合的運算的例子如下。


  • 在算術中,實數的加法和乘法都是可結合的,即:

(x+y)+z=x+(y+z)=x+y+z(xy)z=x(yz)=xyz  }∀x,y,z∈R.{displaystyle left.{begin{matrix}(x+y)+z=x+(y+z)=x+y+zquad \(x,y)z=x(y,z)=x,y,zqquad qquad qquad quad ,end{matrix}}right}forall x,y,zin mathbb {R} .}{displaystyle left.{begin{matrix}(x+y)+z=x+(y+z)=x+y+zquad \(x,y)z=x(y,z)=x,y,zqquad qquad qquad quad   ,end{matrix}}right}forall x,y,zin mathbb {R} .}


  • 複數和四元數的加法與乘法是可結合的。八元數的加法也是可結合的,但其乘法則是不可結合的。


  • 最大公因數和最小公倍數的運算都是可結合的。

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∈Z.{displaystyle left.{begin{matrix}operatorname {gcd} (operatorname {gcd} (x,y),z)=operatorname {gcd} (x,operatorname {gcd} (y,z))=operatorname {gcd} (x,y,z) quad \operatorname {lcm} (operatorname {lcm} (x,y),z)=operatorname {lcm} (x,operatorname {lcm} (y,z))=operatorname {lcm} (x,y,z)quad end{matrix}}right}forall x,y,zin mathbb {Z} .}{displaystyle left.{begin{matrix}operatorname {gcd} (operatorname {gcd} (x,y),z)=operatorname {gcd} (x,operatorname {gcd} (y,z))=operatorname {gcd} (x,y,z) quad \operatorname {lcm} (operatorname {lcm} (x,y),z)=operatorname {lcm} (x,operatorname {lcm} (y,z))=operatorname {lcm} (x,y,z)quad end{matrix}}right}forall x,y,zin mathbb {Z} .}

  • 因為線性變換是個可表示成矩陣的函數,其中的函數複合則可以用矩陣乘法來表示,立即可知矩陣乘法為可結合的。


  • 集合的交集和聯集為可結合的:

(A∩B)∩C=A∩(B∩C)=A∩B∩C(A∪B)∪C=A∪(B∪C)=A∪B∪C}∀A,B,C.{displaystyle left.{begin{matrix}(Acap B)cap C=Acap (Bcap C)=Acap Bcap Cquad \(Acup B)cup C=Acup (Bcup C)=Acup Bcup Cquad end{matrix}}right}forall A,B,C.}left.{begin{matrix}(Acap B)cap C=Acap (Bcap C)=Acap Bcap Cquad \(Acup B)cup C=Acup (Bcup C)=Acup Bcup Cquad end{matrix}}right}forall A,B,C.

  • M{displaystyle M}M是某個集合且S{displaystyle S}S為所有從M{displaystyle M}M映射至M{displaystyle M}M的函數所組成的集合,則在S{displaystyle S}S上的函數複合的運算是可結合的:


(f∘g)∘h=f∘(g∘h)=f∘g∘h∀f,g,h∈S{displaystyle (fcirc g)circ h=fcirc (gcirc h)=fcirc gcirc hqquad forall f,g,hin S}(fcirc g)circ h=fcirc(gcirc h)=fcirc gcirc hqquadforall f,g,hin S

  • 更一般性地,給定四個集合M{displaystyle M}MN{displaystyle N}NP{displaystyle P}PQ{displaystyle Q}Q,且h:M→N,g:N→P{displaystyle h:Mto N,g:Nto P}{displaystyle h:Mto N,g:Nto P}f:P→Q{displaystyle f:Pto Q}{displaystyle f:Pto Q},則

(f∘g)∘h=f∘(g∘h)=f∘g∘h{displaystyle (fcirc g)circ h=fcirc (gcirc h)=fcirc gcirc h}(fcirc g)circ h=fcirc (gcirc h)=fcirc gcirc h

和前面一樣。簡單地說,映射的複合總會是可結合的。

  • 給定一個有三個元素A{displaystyle A}AB{displaystyle B}BC{displaystyle C}C的集合,其運算如下:




























+{displaystyle +}+
×{displaystyle times }times A B C
A
A A A
B
A B C
C
A A A

是可結合的。不過,此運算不是可交換的。



不可結合性


一個在集合S{displaystyle S}S上的二元運算*若不滿足結合律,則稱之為不可結合的。表示成符號即為:



(x∗y)∗z≠x∗(y∗z)∃x,y,z∈S{displaystyle (x*y)*zneq x*(y*z)qquad exists x,y,zin S}(x*y)*zne x*(y*z)qquadexist x,y,zin S

在此一運算下,運算的順序是影響的。減法、除法和冪都是不可結合運算的簡單例子:


(5−3)−2≠5−(3−2)(4/2)/2≠4/(2/2)2(12)≠(21)2.{displaystyle {begin{matrix}(5-3)-2neq 5-(3-2)quad \(4/2)/2neq 4/(2/2)qquad qquad \2^{(1^{2})}neq (2^{1})^{2}.quad qquad qquad end{matrix}}}<br />
begin{matrix}<br />
(5-3)-2ne 5-(3-2)quad<br />
\<br />
(4/2)/2ne 4/(2/2)qquadqquad<br />
\<br />
2^{(1^2)}ne(2^1)^2.quadqquadqquad<br />
end{matrix}<br />

一般,當不可結合運算在一個表示出現多於一次時,括號就必須被使用來表示其運算順序。不過,數學家會對若干常見的不可結合運算採用一種特別的運算順序的規則。這單純只是個為了減少括號的語法約定。



二進位浮點數



在電腦科學中,由於採用二進位浮點數運算,因此加法不符合結合律。[1]


(a+b)+c≠a+(b+c){displaystyle (a+b)+cneq a+(b+c)}(a+b)+cneq a+(b+c)

以下兩個運算的結果在電腦中不相等:



  • (0.1+0.2)+0.3{displaystyle (0.1+0.2)+0.3}{displaystyle (0.1+0.2)+0.3}

  • 0.1+(0.2+0.3){displaystyle 0.1+(0.2+0.3)}{displaystyle 0.1+(0.2+0.3)}


使用相等运算符進行比較,會傳回假(false)。



參考文獻





  1. ^ What Every Computer Scientist Should Know About Floating-Point Arithmetic. What Every Computer Scientist Should Know About Floating-Point Arithmetic. [2014-08-31]. 




參見




  • 半群是一個有著封閉可結合二元運算的集合。


  • 交換律和分配律是另兩個在二元運算中常被討論的性質。

  • 遞移關係


  • 冪結合性和可代替性是兩個弱型式的結合律。






Comments

Popular posts from this blog

Monte Carlo

Information security

章鱼与海女图