Jump to content

Arity

This is a fully translated article. Click here for more information.
From DawoumWiki, the free Mathematics self-learning

논리(logic), 수학(mathematics), 및 컴퓨터 과학(computer science)에서, 함수(function) 또는 연산(operation)애리티(arity, /ˈærɪti/ (About this soundlisten))는 함수가 취하는 인수(arguments) 또는 피연산자(operand)의 숫자입니다.

애리티(Arity, /ˈærɪti/ (About this soundlisten))는 논리(logic), 수학(mathematics)컴퓨터 과학(computer science)에서 함수(function) 또는 연산(operation)에 의해 취해지는 인수(arguments) 또는 피연산자(operand)의 숫자입니다. 수학에서, 애리티는 역시 rank라고 이름-지어질 수 있지만,[1][2] 이 단어는 수학에서 많은 다른 의미를 가질 수 있습니다. 논리와 철학에서, 그것은 역시 adicitydegree라고 불립니다.[3][4] 언어학(linguistics)에서, 그것은 보통 valency라고 이름-짓습니다.[5]

Examples

용어 "arity"는 일상적인 용도로 거의 사용되지 않습니다. 예를 들어, "덧셈(addition) 연산의 애리티는 2" 또는 "덧셈은 애리티 2의 연산"이라고 말하기 보다는 보통 "덧셈은 이항 연산"이라고 말합니다. 일반적으로, 주어진 애리티를 갖는 함수 또는 연산자의 이름-지정은 이진(binary)십육진(hexadecimal)과 같은 n-밑수 숫자-표시(numeral system) 시스템에 대해 사용되는 것과 유사한 관례를 따릅니다. 우리는 라틴어(Latin) 접두사와 -ary 어미를 결합합니다; 예를 들면:

  • 영항(nullary) 함수는 인수를 취하지 않습니다.
    • 예제:
  • 단항 함수(unary function) 하나의 인수를 취합니다.
    • 예제:
  • 이항 함수(binary function) 둘의 인수를 취합니다.
    • 예제:
  • 삼항 함수(ternary function)는 셋의 인수를 취합니다.
    • 예제:
  • n-항 함수는 n 인수를 취합니다.
    • 예제:

Nullary

때때로 상수(constant)를 애리티 0의 연산으로 고려하는 것이 유용하고, 따라서 그것을 영항이라고 부릅니다.

역시, 비-함수형 프로그래밍(functional programming)에서, 인수없는 함수는 의미가 있을 수 있고 (이차 효과(side effect)로 인해) 필연적으로 상수인 것은 아닙니다. 종종, 그러한 함수는 시스템의 전체 상태 (시간, 여유 메모리, ...)를 포함하는 전역 변수(global variable)일 수 있는 사실 일부 숨겨진 입력을 가집니다. 후자는 보통 역시 "순수한" 함수형 프로그래밍 언어에 존재하는 중요한 예제입니다.

Unary

수학과 프로그래밍에서 단항 연산자(unary operator)의 예제는 단항 빼기와 더하기, C-스타일 언어 (논리 언어가 아님)에서 증가와 감소 연산자, 다음수(successor), 팩토리얼(factorial), 역수(reciprocal), 바닥(floor), 천장(ceiling), 분수 부분(fractional part), 부호(sign), 절댓값(absolute value), 제곱근(square root) (주요 제곱근), 복소 켤레)complex conjugate) (어쨌든 더 낮은 추상화 수준에서 두 부분을 가지는 "하나" 복소수의 단항) 및 수학의 노름(norm) 함수를 포함합니다. 2의 보수(two's complement), 주소 참조(address reference)논리적 NOT(logical NOT) 연산자는 수학과 프로그래밍에서 단항 연산자의 예제입니다.

람다 계산법(lambda calculus)과 일부 함수형 프로그래밍 언어(functional programming language) (특히 ML에서 계통을 잇는 그것들)에서 모든 함수는 기술적으로 단항이지만, 아래의 n-항(n-ary)을 참조하십시오.

콰인(Quine)에 따르면, 라틴어 분포는 singuli, bini, terni, 등이며, 용어 "singulary"는 "unary"이 아니라 올바른 형용사입니다.[6] 에이브러햄 로빈슨(Abraham Robinson)은 콰인의 사용법을 따릅니다.[7]

철학에서 형용사 monadic은 때때로 'is the sister of'와 같은 두 자리 관계에 반대되는 'is the square-shaped'와 같은 한 자리 관계를 설명하기 위해 사용됩니다.

Binary

프로그래밍과 수학에서 접하는 대부분의 연산자는 이항(binary) 형식입니다. 프로그래밍과 수학 둘 다에서, 이것들은 곱셈 연산자(multiplication operator), 제곱근 연산자, 자주 생략된 지수(exponentiation) 연산자, 로그(logarithm) 연산자, 덧셈 연산자, 나눗셈 연산자일 것입니다. OR, XOR, AND, IMPP와 같은 논리적 술어는 전형적으로 둘의 구별되는 피연산자를 갖는 이항 연산자로 사용됩니다. CISC 아키텍처에서, 둘의 소스 피연산자를 갖는 것이 공통적입니다 (그리고 그 중 하나에 결과를 저장합니다).

Ternary

수학에서 일반 함수 외에 공통 삼항 연산은 일부 다른 n-항 연산이 암시될 수 있지만 summatoryproductory입니다.

컴퓨터 프로그래밍 언어 C와 다양한 후손들 (C++, C#, Java, Julia, Perl, 등을 포함)은 삼항 연산자(ternary operator) ?:를 제공하며, 역시 셋의 피연산자를 취하는 조건부 연산자(conditional operator)로 알려져 있습니다. 첫 번째 피연산자 (조건)가 평가되고, 만약 그것이 참이면, 전체 표현식의 결과는 두 번째 피연산자의 값이고, 그렇지 않으면 세 번째 피연산자의 값입니다. Forth 언어는 역시 삼항 연산자 */를 포함하며, 이것은 처음 둘의 (1-셀) 숫자를 곱하여, 세 번째로 나누며, 여기서 중간 결과는 이중 셀 숫자입니다. 이것은 중간 결과가 단일 셀을 오버플로할 때 사용됩니다. 파이썬(Python) 언어는 삼항 조건부, x if C else y을 가집니다. 유닉스 dc 계산기는 스택에서 셋의 값을 꺼내고 임의적인 정밀도(arbitrary precision)를 효율적으로 계산하는 |와 같은 여러 삼항 연산자를 가집니다. 추가적으로, 많은 (RISC) 어셈블리 언어 명령어는 (CISC에 지정된 오직 둘의 피연산자에 반하여) 삼항입니다; 또는 레지스터 BX 및 CX의 합 (괄호) 인 계산 된 메모리 위치의 컨텐츠를 레지스터 AX에 로드 (MOV)하는 MOV %AX, (%BX, %CX)와 같은 그 이상의 것입니다.

n-ary

수학적 관점에서, n 인수의 함수는 항상 일부 곱 공간(product space)의 원소인 하나의 단일 인수의 함수로 여길 수 있습니다. 어쨌든, 그것은 예를 들어 다중선형 맵(multilinear map) (만약 n ≠ 1이면, 곱 공간의 선형 맵이 아님)과 같은 n-항 함수를 고려하기 위한 표기법에 대해 편리할 수 있습니다.

같은 것은 프로그래밍 언어에 대해 참이며, 여기서 여러 인수를 취하는 함수는 항상 튜플(tuple)과 같은 일부 합성 유형(composite type)의 단일 인수를 취하는 함수로 정의되거나, 또는 고차 함수(higher-order function)를 갖는 언어에서 커링(currying)에 의해 정의될 수 있습니다.

Varying arity

컴퓨터 과학에서, 인수의 변하는 개수를 수용하는 인수는 가변항(variadic)이라고 불립니다. 논리와 철학에서, 인수의 변하는 개수를 수용하는 술어 또는 관계는 multigrade, anadic, 또는 variably polyadic이라고 불립니다.[8]

Terminology

라틴어(Latin)-문자 이름은 주로 "n의 그룹에서"를 의미하는 라틴어 분배 숫자(distributive number)를 기반으로 특정 기사에 공통적으로 사용되지만, 일부는 라틴어 세는 숫자(cardinal number) 또는 순서 숫자(ordinal number)를 기반으로 합니다. 예를 들어, 1-ary는 singulary를 초래하는 분배 singulī가 아니라 세는 숫자 unus를 기반으로 합니다.

x-ary Arity (Latin based) Adicity (Greek based) Example in mathematics Example in computer science
0-ary Nullary (from nūllus) Niladic A constant A function without arguments, True, False
1-ary Unary Monadic Additive inverse Logical NOT operator
2-ary Binary Dyadic Addition OR, XOR, AND
3-ary Ternary Triadic Triple product of vectors Conditional operator
4-ary Quaternary Tetradic Quaternion
5-ary Quinary Pentadic Quantile
6-ary Senary Hexadic
7-ary Septenary Hebdomadic
8-ary Octonary Ogdoadic
9-ary Novenary (alt. nonary) Enneadic
10-ary Denary (alt. decenary) Decadic
More than 2-ary Multary and multiary Polyadic
Varying Variadic Sum; e.g., Variadic function, reduce

n-aryn 피연산자 (또는 매개변수)를 의미하지만, 종종 "polyadic"의 동의어로 사용됩니다.

이들 단어는 종종 해당 숫자와 관련된 무언가를 설명하기 위해 사용됩니다 (예를 들어, undenary chess는 11×11 보드를 갖는 체스 변형(chess variant), 또는 1603년의 Millenary Petition입니다).

관계(relation) (또는 술어(predicate))의 애리티는 해당하는 데카르트 곱(Cartesian product)에서 도메인(domain)의 차원입니다. (애리티 n의 함수는 따라서 애리티 n+1을 관계로 가집니다.)

컴퓨터 프로그래밍(computer programming)에서, 종종 연산자(operators)함수(functions) 사이에 구문상의(syntactical) 구별이 있습니다; 구문상의 연산자는 보통 애리티 0, 1 또는 2를 갖습니다 (삼항 연산자(ternary operator) ?:는 역시 공통적입니다). 함수는 인수의 숫자에 따라 크게 다르지만, 큰 숫자는 다루기가 어려울 수 있습니다. 일부 프로그래밍 언어는 역시 가변항-함수(variadic functions), 즉, 인수의 변하는 숫자를 구문적으로 수용하는 함수에 대한 지원을 제공합니다.

See also

References

  1. ^ Hazewinkel, Michiel (2001). Encyclopaedia of Mathematics, Supplement III. Springer. p. 3. ISBN 978-1-4020-0198-7.
  2. ^ Schechter, Eric (1997). Handbook of Analysis and Its Foundations. Academic Press. p. 356. ISBN 978-0-12-622760-4.
  3. ^ Detlefsen, Michael; McCarty, David Charles; Bacon, John B. (1999). Logic from A to Z. Routledge. p. 7. ISBN 978-0-415-21375-2.
  4. ^ Cocchiarella, Nino B.; Freund, Max A. (2008). Modal Logic: An Introduction to its Syntax and Semantics. Oxford University Press. p. 121. ISBN 978-0-19-536658-7.
  5. ^ Crystal, David (2008). Dictionary of Linguistics and Phonetics (6th ed.). John Wiley & Sons. p. 507. ISBN 978-1-405-15296-9.
  6. ^ Quine, W. V. O. (1940), Mathematical logic, Cambridge, Massachusetts: Harvard University Press, p. 13
  7. ^ Robinson, Abraham (1966), Non-standard Analysis, Amsterdam: North-Holland, p. 19
  8. ^ Oliver, Alex (2004). "Multigrade Predicates". Mind. 113 (452): 609–681. doi:10.1093/mind/113.452.609.

External links

A monograph available free online: