|
|
1行目: |
1行目: |
− | {{出典の明記|date=2017年8月}}{{No footnotes|date=2017年8月}} | + | {{テンプレート:20180815sk}} |
− | '''アリティ''' (''arity'') とは、[[代数学]]、[[論理学]]、[[計算機科学]]などにおいて、[[関数]]や[[算法]](演算) が取る[[引数]]([[被演算子|オペランド]])の個数を意味する用語である。 '''項数'''のような訳語が当てられる場合もあるが、'''arity'''と英単語のまま用いられることも多い。 複合語としてならば、「変数」(例えば[[二変数函数]]、[[多変数函数]])や単に「項」([[二項演算]]、[[多項関係]]など)あるいはまた([[不定元]]の数という意味で)「({{mvar|n}}-)元」(例えば[[二元連立一次方程式]])などはアリティに言及する訳語として存外よく用いられるものである。(しかし同じ語でも、例えば[[数列]]や[[多項式]]などに用いられる「項」や「項数」はアリティではなく "term" に関する言及である。)
| |
− | | |
− | ==数学におけるアリティ==
| |
− | 典型的には、関数''f''の[[定義域]]が、ある[[集合]]''S''の''n''項の[[直積]]である場合、''f''のアリティは''n''である([[多変数函数|''n''-変数あるいは ''n''-元函数]]である)と言われる。 また、ある集合''S''上の[[多項関係|''n''-項関係]] (''n''-ary relation) は、形式的に集合の''n''項の直積''S''<sup>''n''</sup>の[[部分集合]]、もしくは''S''<sup>''n''</sup>を定義域とする[[指示関数|特性関数]]として表され、これに対しても''n''をアリティと呼ぶ。
| |
− | | |
− | この概念は特に[[代数的構造|代数構造]]を抽象化して統一的に扱おうとする[[普遍代数学]]において有用である。 例えば[[群 (数学)|群]]は、ある空でない集合''S''上に2項演算 (-)・(-) : ''S'' × ''S'' → ''S'' と、定数である[[単位元]]''e'' ∈ ''S''、および[[逆元]]を与える単項演算 (-)<sup>−1</sup> : ''S'' → ''S'' が与えられたものと見ることができる。 単位元は形式上 0 項の演算 ''e'' : 1 → ''S'' (ただし、1 = {*} は 1 点集合) と同一視できるので、群とは、集合''S''に異なるアリティをもつ演算の集合 ''Ω'' = {''e'', (-)<sup>−1</sup>, ・} および演算が満たすべき等式の集合 ''E'' = {''e''・''x'' = ''x'', ''x''・''e'' = ''x'', ''x''・''x''<sup>−1</sup> = ''e'', ''x''<sup>−1</sup>・''x'' = ''e'', (''x''・''y'')・''z'' = ''x''・(''y''・''z'')} が与えられたものだとみることができる。 同様に[[環 (数学)|環]]とは、非空の集合 ''S'' と、(特定の性質 ''E'' を備えた) 4 つの演算 ''Ω'' = {0, −, +, ・} の対だとみなすことができる。 これら 4 つの演算はすべて値域を ''S'' とするが、定義域のアリティは様々である。 演算からアリティを与える関数ar: ''Ω'' → '''N'''を考えるなら、環の場合 ar(0) = 0, ar(-) = 1, ar(+) = ar(・) = 2 のようになる。 このようにしてアリティの異なる演算の集合を通じて様々な代数構造を統一的に扱う道が開ける。
| |
− | | |
− | ==計算機科学におけるアリティ==
| |
− | 計算機科学では、種々の[[プログラミング言語]]において[[サブルーチン|関数や手続き]]の[[引数]]の数を指してアリティと呼び、特にこの概念は言語が可変個の引数を許すような仕組みを持つ場合に有用である。 逆に、関数がその値として[[タプル]]などによりいくつかの要素からなるような多値を返すような場合、その要素数を'''コアリティ''' (co-arity) と呼ぶことがある。
| |
− | | |
− | また、[[関係データベース]]の理論である[[関係モデル]]では、ある[[関係 (データベース)|関係(リレーション)]] に含まれる[[属性 (データベース)|属性]] (attribute) の数をその関係のアリティと呼んでいる。
| |
− | | |
− | == 呼称のバリエーション ==
| |
− | * {{仮リンク|零項|en|Arity#Nullary}} - 引数のない関数、メソッド。無項演算と呼ばれることがある。''nullary'', ''niladic'', ''medadic''
| |
− | * [[単項演算|単項]] - 引数を1つとる関数、メソッド。''unary'', ''monadic''
| |
− | * [[二項演算|二項]] - 引数を2つとる関数、メソッド。''binary'', ''dyadic''
| |
− | * [[三項演算子|三項]] - 引数を3つとる関数、メソッド。''ternary'', ''triadic''
| |
− | * [[算法|多項]] - 2つ以上の引数をとる関数、メソッド。大抵の場合引数は有限項数だが、一般には無限変数の場合を扱いうる表現。''multiary'', ''multary'', ''polyadic''、無限変数の場合 ''infinitary''
| |
− | * [[有限項演算|'''n-項''']] - 引数を(有限の){{mvar|n}} 個(しかしここでいう {{mvar|n}} は単なる[[メタ構文変数|プレースホルダ]]であり、別の文字に取り換えうる)とる関数、メソッド。多項演算の同義語として扱われることも多いがふつう無限変数の場合までさすことはない。また、{{mvar|n}} は(任意の値を指定し得るけれども)確定の値を持つのであり、可変長とは異なる。''n-ary'', ''finitary''
| |
− | * [[可変長引数]] - プログラミングにおける概念で、引数の個数が指定されていないもの。''variable arity'', ''variadic''
| |
− | | |
− | == 関連項目 ==
| |
− | * [[演算子]]
| |
− | * [[結合価]]
| |
− | * {{ill2|指標 (数理論理学)|en|signature (logic)}}: 各構造が持つ演算および関係とそのアリティの組をすべて指定するもの。普遍代数学における代数系の「型」など。
| |
− | | |
− | {{Math-stub}}
| |
− | {{Software-stub}}
| |
− | | |
− | == 外部リンク ==
| |
− | * {{PlanetMath|urlname=Arity|title=arity}}
| |
− | * {{ProofWiki|urlname=Definition:Operation/Arity|title=Definition:Operation/Arity}}
| |
− | | |
− | * {{nlab|urlname=arity+class|title=arity class}} / {{nlab|urlname=modal+similarity+type|title=modal similarity type}}
| |
− | * {{SpringerEOM|urlname=Signature_(Computer_Science)|title=Signature (Computer Science)}}
| |
− | | |
− | {{DEFAULTSORT:ありてい}}
| |
− | [[Category:代数学]]
| |
− | [[Category:プログラミング言語の構文]]
| |
− | [[Category:データベース]]
| |
− | [[Category:データモデリング]]
| |
− | [[Category:数学に関する記事]]
| |