Sari la conținut

Sistem unar

De la Wikipedia, enciclopedia liberă
Sistem de numerație
Sistem Bază
  Unar 1
  Binar 2
  Ternar 3
  Cuaternar 4
  Cvinariu 5
  Senar 6
  Octal 8
  Zecimal 10
  Duodecimal 12
  Hexazecimal 16
  Vigesimal 20
  Hexatrigesimal 36
  Sexagesimal 60

Sistemul unar este cel mai simplu sistem de numerație pentru a reprezenta numerele naturale:[1] pentru a reprezenta un număr N, un simbol care reprezintă pe „1” se repetă de N ori.[2]

În sistemul unar, numărul 0 (zero) este reprezentat de șirul vid, adică absența vreunui simbol. Numerele 1, 2, 3, 4, 5, 6, ... sunt reprezentate în sistemul unar ca 1, 11, 111, 1111, 11111, 111111, ...[3]

În viziunea sistemelor de numerație poziționale, sistemul unar ar fi o corespondență biunivocă cu baza 1. Însă deoarece valoarea unei cifre nu depinde de poziția sa, se poate argumenta că sistemul unar nu este un sistem pozițional.

Utilizarea semnelor pe răboj în numărare este un exemplu de sistem de numerație unar. De exemplu, folosind semnul |, numărul 3 este reprezentat ca |||. În culturile Asia de Est, numărul 3 este reprezentat ca , un caracter trasat din trei linii.[4] (Numerele 1 și 2 sunt reprezentate similar.) În China și Japonia caracterul , trasat din cinci linii, este uneori folosit ca semn de răboj.[5][6]

Numerele unare nu trebuie confundate cu cele repunit, care sunt, de asemenea, scrise ca șiruri de unități, dar au interpretarea numerică zecimală obișnuită.

Operații[modificare | modificare sursă]

În sistemul unar adunarea și scăderea sunt foarte simple, reducându-se practic la concatenarea, respectiv separarea șirurilor de semne.[7] Ponderea Hamming sau numărarea unul câte unul pot fi interpretate ca o conversie de la sistemul unar la unul pozițional, de exemplu binar.[8] Însă înmulțirea este mai greoaie și a fost adesea folosită ca un mod de testare la proiectarea mașinilor Turing.[9][10][11]

Complexitate[modificare | modificare sursă]

Comparat cu sistemele de numerație poziționale, sistemul unar este incomod, prin urmare nu este utilizat în practică pentru calcule mari. Apare în unele descrieri ale problemelor de decizie din informatica teoretică (de exemplu unele probleme P-complete⁠(d)), unde este folosită pentru a reduce „artificial” timpul de rulare sau cerințele de spațiu ale unei probleme. De exemplu, problema descompunerii în factori primi este suspectată că necesită un timp de rulare mai mult decât polinomial în funcție de lungimea intrării dacă intrarea este dată în binar, dar numai un timp de rulare liniar dacă intrarea este prezentată în unar.[12][13][nefuncțională] Totuși, acest lucru este potențial înșelător. Utilizarea unei intrări unare este mai lentă pentru orice număr; deosebirea este că o intrare binară (sau cu bază mai mare) este proporțională cu logaritmul în baza 2 (sau în baza mai mare) al numărului, în timp ce intrarea unară este proporțională cu numărul în sine. Prin urmare, în timp ce în unar necesarul de timp și spațiu este mai mic în funcție de dimensiunea intrării, global asta nu reprezintă o soluție mai eficientă.[14]

În teoria complexității numerotarea unară este folosită pentru a distinge problemele NP-complete dificile de problemele care sunt NP-complete, dar nu și dificile. O problemă în care intrarea include unii parametri numerici este NP-completă dificilă dacă rămâne NP-completă chiar și atunci când dimensiunea intrării este mărită artificial prin prezentarea parametrilor în unar. Pentru o astfel de problemă, există cazuri dificile pentru care toate valorile parametrilor sunt cel mult polinomial mari.[15]

Aplicații[modificare | modificare sursă]

Numărarea unară este utilizată ca parte a unor algoritmi de compresie a datelor, cum ar fi codarea Golomb⁠(d).[16] De asemenea, formează baza pentru axiomele Peano⁠(d) pentru formalizarea aritmeticii în logica matematică.[17] O formă de notație unară numită codarea Church⁠(d) este folosită pentru a reprezenta numere în calculul lambda⁠(d).[18]

Note[modificare | modificare sursă]

  1. ^ en Hodges, Andrew,  
  2. ^ en Davis, Martin; Sigal, Ron; Weyuker, Elaine J.,  
  3. ^ en Hext, Jan,  
  4. ^ en Woodruff, Charles E.,  
  5. ^ en Hsieh, Hui-Kuang,  
  6. ^ en Lunde, Ken; Miura, Daisuke (), „Proposal to Encode Five Ideographic Tally Marks”, Unicode Consortium (PDF), Proposal L2/16-046 
  7. ^ en Sazonov, Vladimir Yu.,  . V. în special p.  48
  8. ^ en Blaxell, David,  
  9. ^ en Hopcroft, John E.; Ullman, Jeffrey D.,  
  10. ^ en Dewdney, A. K.,  
  11. ^ en Rendell, Paul,  
  12. ^ en Arora, Sanjeev; Barak, Boaz,  
  13. ^ en Feigenbaum, Joan (), CPSC 468/568 HW1 Solution Set (PDF), Computer Science Department, Yale University, accesat în  
  14. ^ en Moore, Cristopher; Mertens, Stephan,  
  15. ^ en Garey, M. R.; Johnson, D. S.,  
  16. ^ en Golomb, Solomon W.,  
  17. ^ en Magaud, Nicolas; Bertot, Yves,  
  18. ^ en Jansen, Jan Martin,  

Legături externe[modificare | modificare sursă]