Sistemul ternar (sau trinar ) este sistemul numeric care folosește baza trei . Cele Cifrele ternar sunt cunoscute Deoarece trit ( tr inary Dig - l ), analoage biți .
Expresiile „ternar” și „trinaire” sunt ambele împrumutate din latina scăzută trinarius „care conține numărul trei, ternar”.
Ternarul a apărut mai târziu de secolul al XIV- lea , a fost folosit pe scară largă în timpul nostru și integrat în dicționarul Academiei Franceze în 1718.
Trinaire a fost folosit ca sinonim al ternarului din cel puțin 1830, nu se bucură de o recunoaștere atât de largă, fiind prezent doar în câteva dicționare. De asemenea, este prezent cu o utilizare similară în alte limbi, cum ar fi engleza cu ternar și trinar .
Acești doi termeni sunt, prin urmare, acceptabili, chiar dacă ternarul beneficiază de o mai mare difuzie.
Numerele utilizate în sistemul ternar sunt de trei tipuri, 0, 1 și 2. Trei este scris ca "10." Prin urmare, patru este „11” și nouă este „100”.
Binar | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 | 1000 | 1001 | 1010 | 1011 | 1100 | 10.000 | 10010 | 10101 | 11011 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Ternar | 0 | 1 | 2 | 10 | 11 | 12 | 20 | 21 | 22 | 100 | 101 | 102 | 110 | 121 | 200 | 210 | 1000 |
Senaire | 0 | 1 | 2 | 3 | 4 | 5 | 10 | 11 | 12 | 13 | 14 | 15 | 20 | 24 | 30 | 33 | 43 |
Zecimal | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 16 | 18 | 21 | 27 |
Binar | 100.000 | 100 100 | 110110 | 1.000.000 | 1010001 | 1100100 | 10000111 | 11011000 | 100.000.000 | 101101101 |
---|---|---|---|---|---|---|---|---|---|---|
Ternar | 1012 | 1100 | 2000 | 2101 | 10.000 | 11202 | 12000 | 22000 | 100111 | 111112 |
Senaire | 52 | 100 | 130 | 144 | 213 | 244 | 343 | 1000 | 1104 | 1405 |
Zecimal | 32 | 36 | 54 | 64 | 81 | 100 | 135 | 216 | 256 | 365 |
Binar | 11 | 1001 | 11011 | 1010001 | 11110011 | 1011011001 | 1000100010111 | 100110100001 |
---|---|---|---|---|---|---|---|---|
Ternar | 10 | 100 | 1000 | 10.000 | 100.000 | 1.000.000 | 10.000.000 | 100.000.000 |
Senaire | 3 | 13 | 43 | 213 | 1043 | 3213 | 14043 | 50213 |
Zecimal | 3 | 9 | 27 | 81 | 243 | 729 | 2187 | 6561 |
Ternară funcționează diviziuni de puteri de trei , precum senar și nonary , spre deosebire de binare și hexazecimale ( „ puteri de două “ baze) sau zecimal .
Dar, ternarul 10 (trei) nu este multiplu de doi. Nu există „aceeași cantitate atunci când este împărțită la două” ca Senary 0,3 sau zecimal 0,5. Astfel, reciproca a numerelor chiar este toate zecimale infinite .
Fracții (senar) |
1/2 | 1/3 | 1/4 | 1/5 | 1/10 | 1/11 | 1/12 | 1/13 | 1/14 | 1/43 |
---|---|---|---|---|---|---|---|---|---|---|
Fracții (zecimale) |
1/2 | 1/3 | 1/4 | 1/5 | 1/6 | 1/7 | 1/8 | 1/9 | 1/10 | 1/27 |
Binar | 0,1 | 0,01 ... | 0,01 | 0,0011 ... | 0,001 ... | 0,001 ... | 0,001 | 0,000111 ... | 0,00011 ... | ※ |
Ternar | 0,11 ... | 0,1 | 0,02 ... | 0,0121 ... | 0,011 ... | 0,010212 ... | 0,01 ... | 0,01 | 0,0022 ... | 0,001 |
Senaire | 0,3 | 0,2 | 0,13 | 0,11 ... | 0,1 | 0,05 ... | 0,043 | 0,04 | 0,033 ... | 0,012 |
Zecimal | 0,5 | 0,33 ... | 0,25 | 0,2 | 0,166 ... | 0.142857 ... | 0,125 | 0,11 ... | 0,1 | 0,037 ... |
※ 0,001 (3) = 0,000010010111101… (2)
Un sistem de numerotare numit ternar echilibrat (ro) folosește cifre cu valorile -1, 0 și 1. Această combinație este deosebit de interesantă pentru relațiile ordinale dintre două valori, unde cele trei relații posibile sunt mai mici decât, egale și mai mari la . Ternarul echilibrat este numărat după cum urmează: (în acest exemplu simbolul 1 indică cifra -1, dar alternativ pentru o utilizare mai ușoară - poate fi folosit pentru a indica -1 și + pentru a indica +1).
Zecimal | -6 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Senaire | -10 | -5 | -4 | -3 | -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 10 |
Ternar echilibrat | 1 10 | 1 11 | 11 | 1 0 | 1 1 | 1 | 0 | 1 | 1 1 | 10 | 11 | 1 11 | 1 1 0 |
Ternarul dezechilibrat poate fi convertit în notație ternară echilibrată adăugând 1111 ... cu carry, apoi scăzând 1111 ... fără carry. De exemplu, 021 3 + 111 3 = 202 3 , 202 3 - 111 3 = 1 1 1 3 (bal) = 7 10 .
Ternarul echilibrat este ușor reprezentat de semnale electronice, ca potențial care poate fi negativ , neutru sau pozitiv . Prin urmare, un fir electric poate transporta mai multe informații în ternar (trei stări) decât în binar (două stări). Astfel, sistemul ternar din electronică face posibilă reducerea numărului de componente și, prin urmare, a consumului electric. Avantajul poate fi calculat cu log (3) / log (2) = ~ 1.584 9 biți per trit. Adică cu aproximativ 60% mai multe informații într-un fel decât într-un pic sau mai pragmatic cu aproximativ 40% mai puține fire electrice (pentru aceeași cantitate de informații).
În 1958, în Uniunea Sovietică , echipa lui Nikolay Brusentsov (în) și Serghei Sobolev de la Universitatea de Stat din Moscova a dezvoltat un computer ternar , Setun , bazat pe utilizarea miniaturilor de foi laminate și a diodelor utilizate pentru crearea unui sistem bazat pe trei -logica de stat. În utilizare, aceste elemente s-au dovedit a fi mai rapide, mai fiabile, mai durabile și mai puțini înfometați decât concurenții lor binari (cel puțin înainte ca URSS să aibă acces la tranzistoare). Dezvoltarea Setun a durat șapte ani, iar computerul a funcționat imediat ce a fost asamblat. Au fost produse aproximativ 50 de mașini, dar programul, considerat un capriciu al academicienilor dintr-o țară care a întârziat să înțeleagă importanța calculelor, a fost rapid abandonat în favoarea computerelor binare mai banale.
De procesoare de calculatoare efectuează un număr de comparație. Trei cazuri apar: un număr este mai mare decât , egal sau mai mic decât altul. Această comparație între două numere se realizează prin scăderea acestor două numere, rezultatul fiind stocat într-un registru al procesorului. Asociate registrul de stare , apoi indică dacă rezultatul este negativ , la zero sau pozitiv (The Zero pavilion indică dacă este sau nu zero și Sign pavilion indică semnul ).
Această capacitate ternară a procesoarelor este uneori exploatată pentru a realiza operațiuni rapide. De exemplu, să luăm cazul unei funcții care returnează un cod care poate lua trei stări diferite. Din punct de vedere academic, această funcție este implementată prin returnarea unui tip enumerat cu trei valori posibile. Prin urmare, codul de returnare al acestei funcții trebuie comparat cu fiecare dintre aceste trei valori pentru a efectua operația asociată fiecărei stări. Folosind această capacitate de procesor, această funcție poate fi implementată prin returnarea unui număr întreg semnat. Determinarea codului de returnare este atunci mult mai rapidă, deoarece sunt verificate direct steagurile (biții) registrului de stare.
Exemplu de funcție în C care exploatează capacitatea ternară a procesorului de a distinge între numere negative , zero și pozitive .
int fonction () { int code_retour; // [...] traitement qui change la valeur du 'code_retour' return code_retour; } void utilisateur() { int code = fonction (); if (code == 0) //vérifie le bit 'Zero' du registre d'état code_nul(); // => opération associée au code nul else if (code > 0) //vérifie le bit 'Sign' du registre d'état code_positif(); // => opération associée au code positif else code_negatif(); // => opération associée au code négatif }Un sistem monetar care utilizează ternarul echilibrat ar rezolva problema acumulării de mici schimbări sau dimpotrivă a lipsei de bani. Este necesar pentru aceasta să batem monede de valoare 1, 3, 9, 27 ... Prin exprimarea prețurilor în ternar standard, avem o modalitate de a completa, folosind cel mult două monede din fiecare valoare. Dar dacă exprimăm prețurile în ternar echilibrat, atunci fiecare 1 reprezintă o monedă pe care clientul trebuie să o acorde comerciantului și fiecare -1 o monedă pe care comerciantul trebuie să o returneze, valoarea monedelor fiind determinată de poziția cifră în număr. De exemplu, pentru a plăti un preț de 1-10 (adică 6 în zecimal), clientul dă o monedă de 9, iar comerciantul îi dă o monedă de 3. 1 și -1 fiind, de asemenea, probabil, distribuția monedelor rămâne uniformă. Nu mai mergem la bancă decât pentru a depune sau retrage monede mari.
Ternarul echilibrat are alte aplicații. De exemplu, o balanță convențională cu două tăvi, cu o masă marcată pentru fiecare dintre primele n puteri de 3, poate cântări obiecte până la , deplasând masele marcate între cele două plăci și masă. Niciun alt sistem de masă marcat nu poate merge atât de bine cu atât de puține mase marcate. De exemplu, cu mase marcate pentru fiecare putere de 3 până la 81 = 3 4 un obiect de 60 g va fi cântărit perfect cu o masă de 81 g pe cealaltă tigaie, masa de 27 g în prima tigaie, masa de 9 g în cealaltă tavă, masa de 3 g în prima tavă și masa de 1 g rămânând deoparte. 60 = 1 1 1 1 0.
Pentru a face adăugiri ternare există mai multe soluții. Primul explică ce va fi al doilea din cap. Aceasta constă în convertirea în zecimal (aveți grijă ca toate numerele în binar din ternar să fie zecimale).
Exemplu:
01010101010101010101+ 11011110101110101011= 12021211111211111112 (résultat décimal ou ternaire)Adăugările ternare se fac prin conversie zecimală. Exemplu:
2102120212+ 1110210212= 3212330424 (conversion décimale) 10220101201 (résultat ternaire)În adaosurile ternare, este suficient ca în zecimal să puneți o unitate deasupra. Exemple:
0 <1 <2 2 este mai mare decât 1 care este mai mare decât 0 1 <2 <0 1 este mai mare decât 0 care este mai mare decât 2 2 <0 <1 0 este mai mare decât 2 care este mai mare decât 1
3==0 s'il y a un résultat qui est a 3 on pose 0 4==1 si un résultat est a 4 on pose une unité au-dessus 1Exemplu:
212110+ 212021= 424131 conversion décimale 1201201 résultat ternaireSistemul ternar este ineficient pentru uz uman, la fel ca binarul . Prin urmare, sistemul nonar ( baza 9 , fiecare cifră reprezintă două cifre ale bazei 3 ) sau sistemul septemvigésimal (en) ( baza 27 ) (fiecare cifră reprezintă trei cifre ale bazei 3 ) este adesea folosit, similar cu utilizarea sistemul octal și sistemul hexazecimal în locul sistemului binar . Sistemul ternar are și analogul unui octet , numit tryte.