associative lawとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > associative lawの意味・解説 

結合法則

(associative law から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/06/01 02:30 UTC 版)

数学における結合性(けつごうせい、: associative property[1])は、一部の二項演算がもつ性質である。演算が結合的であるための必要十分条件を結合法則(けつごうほうそく、: associative law; 結合律結合則)という。命題論理において、結合則: associativity; 結合規則)は形式的証明におけるに対する妥当英語版置換規則英語版のひとつに挙げられる。

同一式にて同じ結合的演算が複数回現れる場合、それらの演算を施す順番は、被演算子の順序を変えない限り、結果に影響しない。つまり、(必要ならば中置記法括弧を使った式に書き換えて)括弧の位置を入れ替えても、式の値は変わらない。例えば、

  • 集合 S 上の二項演算 が結合的となるのは、この図式が可換のとき。つまり、左上の S × S × S から右下の S までいくのに考え得る二種類の経路に沿って得られる写像の合成が、S × S × S から S への同じ写像を定める。

    厳密に、集合 S 上で定義された二項演算 結合的であるとは、結合法則

    結合性がない場合には、五つの因子 a, b, c, d, e のこの順での積は、四次のタマリ束英語版を成し、それぞれが異なる値を持ち得る。

    二項演算が結合的ならば、その演算が反復して適用されるとき、その式においてきちんと(開きと閉じが)対になる括弧がどのように挿入されるかを気にすることなく、その演算結果が同じであることがわかる[2]。そのことを一般化された結合法則 (generalized associative law) と言う。実例として、四つの元の積を、それらの因子の順番を変えることなく書き下せば、五種類の異なる計算順序が考えられる:

    • 結合的演算において
      実数の加法は結合的である。

      結合的演算の例をいくつか挙げる:

      • 文字列結合。3つの文字列 "a"、"b"、"c" を繋げる際、先の2つを繋いで "ab" を得てから、その末尾に3つめの "c" を繋ぐと、"abc" となる。一方で、後の2つを繋いで "bc" を得てから、その先頭に1つめの "a" を繋いでも、同じく "abc" となる。そのため、文字列結合は結合的である。なお、可換ではない。
      • 複素数同士の加法。(複素数とは、実数虚数の総称であり、いわゆる数。)グループ化を表す括弧は、曖昧さを生まずに除去できる。
      カテゴリ:推論規則

      結合規則

      標準的な真理函数的命題論理において、結合則 (association[4][5], associativity[6]) は二つの妥当英語版置換規則英語版を言う。それは、論理学的証明における論理式に現れる括弧の位置を動かしてもよい規則を述べるもので、論理結合子を用いて書けば

      のふたつである。ただし、"" はメタ論理英語版記号英語版で、「形式的証明において置換してよい」ことを表す。

      論理演算の結合性

      真理函数的命題論理における真理函数の結合子のいくつかは結合性 (associativity) を持つ。以下の論理同値英語版(これらは真理函数的恒真式である)は結合性が特定の結合子の持つ性質であることを示している [7]:

      選言の結合性
      連言の結合性
      論理同値の結合性

      接合否定 (joint denial) は結合的でない真理函数結合子の例である。

      非結合的演算

      集合 S 上の二項演算 が結合法則を満足しない—記号で書けば —となるとき、非結合的 (non-associative) である、必ずしも結合的でないなどという。

      そのような演算では、計算順序は結果に影響する。非結合演算の例として

      • 減法:
      • 除法:
      • 冪演算:

      などがある。あるいは無限和もまた一般には非結合的である。例えば:

      非結合的構造の研究は、古典代数学の主流からはいくらか異なった理由から生じてくるものである。非結合多元環の領域にあってすでに一大分野へと発展したリー代数の理論では、結合法則の代わりにヤコビ恒等式が採用される。リー代数は無限小変換英語版の本質的な特質を抽象化するものであり、数学に遍在するものとなった。

      既に深く調べられているほかの特定種類の非結合的構造もあり、それらは何らかの特定の応用から、あるいは組合せ論のような分野から生じたものである。その他の例は、Quasigroup英語版準体英語版、非結合的環、非結合的多元環可換(非結合的)マグマ英語版など。

      非結合的演算の記法

      非結合的演算が一つの式の中で複数回現れるときには、評価の順を指し示すために(例えば 2/3/4 のように、ほかの方法で順番を指定する記法を用いているのでない限り)一般には括弧を挿入する必要がある。とはいえ、いくつかのよく用いられる非結合的演算については、特定の順番に評価することにして括弧の使用を回避する簡便記法が、受け入れられている。

      左結合 (left-associative) 演算とは、規約として左から右に評価する—式で書けば を意味する—演算を言う。同様に右結合 (right-associative) 演算は、右から左に評価するものと約束する: 左結合演算も右結合演算もどちらも生じ得る。左結合演算の例:

      • 実数の減法および除法[8][9][10][11][12]:
      • 函数の適用: この記法はカリー化の同型によって動機づけられる。

      右結合演算の例:

      • 実数の(上付き添字記法の場合): 冪演算は、反復的な左結合冪演算にあまり需要がない(左からの繰り返しの冪は、冪指数の乗法を使って と書き直せる)ため、括弧が付かない場合にはふつう右結合的とする。
        • 正しく組まれている限り、上付き添字それ自体に括弧で括るのと本質的に同じ効果が期待できる。例えば 2x+3 という式では右肩の和の計算が冪をとるよりも先に行われ、それは括弧で括って 2(x+3) と明示的に書いたときに期待される計算順序になっている。それゆえ、xyz のような式が与えられたときは、底 x に対する全体の冪指数 yz がまず計算されるのは必定である。とはいえ、手書きする場合などは特にそうだが、文脈によっては (これらを、陽に括弧を付けて書けば、順に )の判別が難しいこともある。そういった場合には、ふつう右結合性が暗黙に用いられている。
      • 写像の合成(図式順): これらの演算の右結合記法は、カリー–ハワード対応およびカリー化同型に動機づけられる。

      評価順について特定の規約がない演算の例:

      • 実数の冪演算(中置記法の場合):[13]
      • クヌースの矢印記法:
      • ベクトルの交叉積ベクトル三重積):
      • 実数の対ごとの算術平均: 可換だが非結合的な演算の例となっている。
      • 集合の差: と一致しない(論理学における否定論理包含英語版の場合と比較せよ)。

      プログラミング言語

      中置記法を採用しているプログラミング言語においては、任意の演算子について数学で言うところの結合法則が成り立たないことを仮定して、その意味をどういった順序で、値を演算子により結合させたものとするかについて、それぞれの言語にそれぞれ法則がある。「演算子の優先順位」(: Operator precedence) と「演算子の結合性英語版」(: Operator associativity) と言う。

      なお、優先順位と結合性は値の扱いに関する規則であって、式の評価の順序に関する規則ではないことに注意が必要である。評価順は優先順位と結合性に直感的に従っていることもあれば、従っていないこともある。言語仕様としては決められていないこともある(評価順と関連するものとして、短絡評価がある。短絡評価のためには評価順が決まっている必要があるため、一般に演算子の左辺と右辺の評価順を決めていないC言語だが、短絡評価される演算子については決まっている。Javaは仕様で全て決めている。Adaでは両辺を評価する演算子と短絡評価の演算子とが用意されている。)。

      優先順位と結合性は、仕様上の表現としては構文規則の一部として決まっているものが多い(たいていは便利さのために別表にまとめられている。yaccのように通常の規則とは別建てで定義できるものもある)。ここでは例として、四則演算を主に挙げるが、他の演算子についても規則は同様にある。

      優先順位

      (ここでの前提である、中置記法を採用している)たいていのプログラミング言語の四則演算の演算子において、加減算より乗除算のほうが優先順位が高い、としているものが多い。

      すなわち a * b + c は (a * b) + c という意味であり、a - b / c は a - (b / c) という意味である。

      多くの演算子を持ち、その数に応じて多くの優先順位を定めているC言語のような言語もあれば、ほとんど優先順位が無く、次節で説明する結合性のみで、どんな演算も左から右、あるいは右から左(たとえばAPL)といったように決めている言語もある。

      結合性

      (前節と同様、中置記法を採用している)たいていのプログラミング言語の四則演算の演算子において、加算と減算、乗算と除算のそれぞれの間には優先順位に差が無い。加減算の連続、たとえば a + b - c + d - e というような式は、左から順に (((a + b) - c) + d) - e という意味となる。このような結合を"左結合" (: left-associative)、あるいは"左から右" (: left to right) と言う。逆が"右結合"(: right-associative)、あるいは"右から左" (: right to left) である。

      右結合の例としては、C系の言語に特徴的な代入演算子 = は右結合である。a = b = 1; という式文における式は a = (b = 1) という意味であり b = 1 という代入演算子による式の値は 1 なので、それが a に(も)代入され、結果として a と b に 1 が代入される。

      冪乗の演算子として ** や ^ がある言語があるが、数学の記法では のように、左を先にしたい場合に括弧が要るので、右結合すなわち a**b**c は a**(b**c) という意味であるとしたほうが数学の記法とは一致するが(たとえばRubyでは ** は右結合である(オブジェクトの種類等によるものではなく、構文上の規則である))、VBのように算術演算は全て左結合としているため冪乗の ^ も左結合[14]、という言語もある。

      非結合(non-associative)は、右結合でも左結合でもない、たとえば比較演算子 < のように、a < b < c の意味が (a < b) < c でも a < (b < c) でもない、というような演算子の結合性である(C言語では左結合として解釈し、比較結果の真理値を整数0か1として、次の比較を行うという通常は意図しない意味を持ってしまう。Pythonのように a < b < c と書いて、意図した通りの意味になる言語もある)。加算や乗算のみの演算のような順序によらない演算には順序を定めない、という言語も考えられるが、あまり見られない(算術と違いコンピュータ上の計算ではオーバーフロー等のために、真に順序によらない計算は実はあまりない、という事情もある)。

      脚注

      注釈

      1. ^ とはいえ、数の乗法や積とは直接的に関係のない、任意の抽象的演算についていう

      出典

      1. ^ Hungerford, Thomas W. (1974) (英語). Algebra (1st ed.). Springer. p. 24. ISBN 978-0387905181. "Definition 1.1 (i) a(bc) = (ab)c for all a, b, c in G." 
      2. ^ Durbin, John R. (1992). Modern Algebra: an Introduction (3rd ed.). New York: Wiley. p. 78. ISBN 978-0-471-51001-7. http://www.wiley.com/WileyCDA/WileyTitle/productCd-EHEP000258.html. "If are elements of a set with an associative operation, then the product is unambiguous; this is, the same element will be obtained regardless of how parentheses are inserted in the product" 
      3. ^ Matrix product associativity”. Khan Academy. 2016年6月5日閲覧。
      4. ^ Moore and Parker[要文献特定詳細情報]
      5. ^ Copi and Cohen[要文献特定詳細情報]
      6. ^ Hurley[要文献特定詳細情報]
      7. ^ [1]
      8. ^ George Mark Bergman: Order of arithmetic operations
      9. ^ Education Place: The Order of Operations
      10. ^ Khan Academy: The Order of Operations, timestamp 5m40s
      11. ^ Virginia Department of Education: Using Order of Operations and Exploring Properties, section 9
      12. ^ Bronstein: de:Taschenbuch der Mathematik, pages 115-120, chapter: 2.4.1.1, ISBN 978-3-8085-5673-3
      13. ^ Exponentiation Associativity and Standard Math Notation Codeplea. 23 Aug 2016. Retrieved 20 Sep 2016.
      14. ^ http://msdn.microsoft.com/en-us/library/vstudio/zh100ckf.aspx

      関連項目

      • ライトの結合性判定法英語版
      • 畳み込み級数 - 級数の中間項が打ち消しあうには加法の結合性が必要
      • 半群 - 結合的二項演算を持つ集合
      • 可換性分配性 - 結合性と同様に、二項演算にしばしば期待されるよい性質
      • 冪結合性英語版交代性英語版柔軟性英語版多項結合性英語版 - 弱い形の結合性
      • モーファンク恒等式英語版からも弱い形の結合性が出る

      外部リンク




英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「associative law」の関連用語

associative lawのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



associative lawのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアの結合法則 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS