Operație ternară

În matematică, o operație ternară este o operație n-ară cu n = 3 operanzi. O operație ternară pe o mulțime A ia trei elemente date din A și le combină pentru a forma un singur element din A.

În informatică, un operator ternar este un operator care are trei argumente.[1]

Fiind date punctele A, B și P, construcția geometrică produce V, proiecția conjugatului armonic al lui P față de A și B

Dacă K este un corp, funcția este un exemplu de operator ternar pe K. Proprietățile acestei operații ternare au fost folosite pentru a defini inelele ternare planare⁠(d) în bazele geometriei proiective.

În planul euclidian cu punctele a, b, c definite față de o origine, operația ternară a fost folosită pentru a defini vectorii euclidieni.[2] Deoarece (abc) = d implică ab = cd, aceste segmente orientate sunt echipotente și sunt asociate cu același vector euclidian. Oricare trei puncte din planul a, b, c determină astfel un paralelogram cu d la al patrulea vârf.

În geometria proiectivă diviziunea armonică este o operație ternară pe trei puncte. În diagramă, punctele A, B și P determină punctul V, conjugatul armonic al P față de A și B. Punctul R și linia prin P pot fi selectate în mod arbitrar, determinând C și D. Desenarea AC și BD determină intersecția Q, iar RQ determină apoi V.

Presupunând că A și B sunt două mulțimi date iar este colecția de relații binare între A și B. Compunerea relațiilor este întotdeauna definită atunci când A = B, dar în caz contrar compunerea ternară poate fi definită prin , care este relația inversă a q.[3]

În algebra booleană definește formula .

În informatică, un operator ternar este un operator care are trei argumente (operanzi).[1] Argumentele și rezultatul pot fi de diferite tipuri. Multe limbaje de programare care folosesc sintaxe asemănătoare cu cea a lumbajului C[4] dispun de operatorul ternar ?:, care definește o instrucțiune de decizie⁠(d)[5]. În unele limbaje acest operator este numit operator condițional[6].

În Python instrucțiunea de decizie este x if C else y (x dacă condiția C este evaluată drept „adevărat”, y dacă este „fals”). Python are și o operație ternară asupra tablourilor: a[b:c] întoarce un tablou al cărui prim element este a[b] iar ultimul este a[c-1].[7] Expresiile OCaml permit operații ternare pe înregistrări, tablouri și șiruri: a.[b]<-c înseamnă că elementul cu indicele b din șirul a primește valoarea c.[8]

Operația de înmulțire și acumulare⁠(d) este alt operator ternar.

Alt exemplu de operator ternar este between (română între) din SQL.

Limbajul de programare Icon⁠(d) are operatorul ternar "to-by" (română până la-cu pasul): expresia 1 to 10 by 2 generează întregii impari de la 1 la 9.

  1. ^ a b en MDN, nmve. „Conditional (ternary) Operator”. Mozilla Developer Network. MDN. Accesat în . 
  2. ^ en Jeremiah Certaine (1943) The ternary operation (abc) = a b−1c of a group, Bulletin of the American Mathematical Society 49: 868–77 MR0009953
  3. ^ en Christopher Hollings (2014) Mathematics across the Iron Curtain: a history of the algebraic theory of semigroups, page 264, History of Mathematics 41, American Mathematical Society ISBN: 978-1-4704-1493-1
  4. ^ en Hoffer, Alex. „Ternary Operator”. Cprogramming.com. Cprogramming.com. Accesat în . 
  5. ^ Daniela Zaharie, Algoritmi si structuri de date: Curs 1, Introducere în rezolvarea algoritmică a problemelor, Timișoara: Universitatea de Vest, 2019, p. 55, accesat 2021-08-18
  6. ^ Tipuri de date si operatori: Laborator 2, Universitatea Politehnica din București, accesat 2021-08-18
  7. ^ en „6. Expressions — Python 3.9.1 documentation”. docs.python.org. Accesat în . 
  8. ^ en „7.7 Expressions”. caml.inria.fr. Accesat în . 

Legături externe

[modificare | modificare sursă]