Prijeđi na sadržaj

Hammingova udaljenost: razlika između inačica

Izvor: Wikipedija
Izbrisani sadržaj Dodani sadržaj
Alexbot (razgovor | doprinosi)
m robot Dodaje: pt:Distância de Hamming
Predložene wikipoveznice: dodane 3 poveznice
 
(Nije prikazano 17 međuinačica 14 suradnika)
Redak 13: Redak 13:


Na primjer:
Na primjer:
* Hammingova udaljenost između '''10<font color=blue>1</font>1<font color=blue>1</font>01''' i '''10<font color=red>0</font>1<font color=red>0</font>01''' je 2.
* Hammingova udaljenost između '''10<span style="color:blue;">1</span>1<span style="color:blue;">1</span>01''' i '''10<span style="color:red;">0</span>1<span style="color:red;">0</span>01''' je 2.
* Hammingova udaljenost između '''10<font color=blue>1</font>1<font color=blue>1</font>01''' i '''10<font color=red>0</font>1<font color=red>0</font>01''' je 2.
* Hammingova udaljenost između '''10<span style="color:blue;">1</span>1<span style="color:blue;">1</span>01''' i '''10<span style="color:red;">0</span>1<span style="color:red;">0</span>01''' je 2.
* Hammingova udaljenost između '''2<font color=blue>14</font>3<font color=blue>8</font>96''' i '''2<font color=red>23</font>3<font color=red>7</font>96''' je 3.
* Hammingova udaljenost između '''2<span style="color:blue;">14</span>3<span style="color:blue;">8</span>96''' i '''2<span style="color:red;">23</span>3<span style="color:red;">7</span>96''' je 3.
* Hammingova udaljenost između "'''<font color=blue>t</font>o<font color=blue>n</font>e<font color=blue>d</font>'''" i "'''<font color=red>r</font>o<font color=red>s</font>e<font color=red>s</font>'''" je 3.
* Hammingova udaljenost između "'''<span style="color:blue;">t</span>o<span style="color:blue;">n</span>e<span style="color:blue;">d</span>'''" i "'''<span style="color:red;">r</span>o<span style="color:red;">s</span>e<span style="color:red;">s</span>'''" je 3.


== Posebna svojstva ==
== Posebna svojstva ==


Za fiksnu duljinu ''n'', Hammingova je udaljenost [[metrika (matematika)|metrika]] vektorskog prostora riječi te duljine, jer očito ispunjava uvjete nenegativnosti, identitete neprimjetnih (''indiscernibles'') i simetrije, a i može se lako dokazati [[potpuna indukcija|potpunom indukcijom]] da također zadovoljava [[nejednakost trokuta]]. Hammingova udaljenost između riječi ''a'' i ''b'' se također može shvatiti kao [[Hammingova težina]] od ''a''&minus;''b'', za prikladan izbor &minus; operatora.
Za fiksnu duljinu ''n'', Hammingova je udaljenost [[metrika (matematika)|metrika]] [[Vektorski prostor|vektorskog prostora]] riječi te duljine, jer očito ispunjava uvjete nenegativnosti, identitete neprimjetnih (''indiscernibles'') i simetrije, a i može se lako dokazati [[potpuna indukcija|potpunom indukcijom]] da također zadovoljava [[nejednakost trokuta]]. Hammingova udaljenost između riječi ''a'' i ''b'' se također može shvatiti kao [[Hammingova težina]] od ''a''&minus;''b'', za prikladan izbor &minus; operatora.


Za '''binarne stringove''' ''a'' i ''b'' Hammingova je udaljenost jednaka broju jedinica u ''a'' [[isključivo ili|xor]] ''b''. Metrički prostor od duljina-''n'' binarnih stringova, zajedno sa Hammingovom udaljenošću, je poznat kao ''Hammingova kocka'' - ekvivalentan je kao metrički prostor skupu udaljenosti vrhova [[graf hiperkocke|grafa hiperkocke]]. Binarni string duljine ''n'' se također može shvatiti kao vektor u <math>\mathbb{R}^n</math> tretirajući svaki simbol stringa kao realnu koordinatu - ovim ugrađivanjem stringovi oblikuju vrhove ''n''-dimenzionalne [[hiperkocka|hiperkocke]] i Hammingova udaljenost stringova je jednaka [[Manhattan udaljenost]]i vrhova.
Za '''binarne stringove''' ''a'' i ''b'' Hammingova je udaljenost jednaka broju jedinica u ''a'' [[isključivo ili|xor]] ''b''. [[Metrički prostor]] od duljina-''n'' binarnih stringova, zajedno s Hammingovom udaljenošću, je poznat kao ''Hammingova kocka'' - ekvivalentan je kao metrički prostor skupu udaljenosti vrhova [[graf hiperkocke|grafa hiperkocke]]. Binarni string duljine ''n'' se također može shvatiti kao vektor u <math>\mathbb{R}^n</math> tretirajući svaki simbol stringa kao realnu koordinatu - ovim ugrađivanjem stringovi oblikuju vrhove ''n''-dimenzionalne [[hiperkocka|hiperkocke]] i Hammingova udaljenost stringova je jednaka [[Manhattan udaljenost]]i vrhova.


== Povijest i primjene ==
== Povijest i primjene ==
Redak 36: Redak 36:
</pre>
</pre>


Sljedeća [[C++]] funkcija računa Hammingovu udaljenost dvaju cijelih brojeva (smatranih binarnim vrijednostima, tj. slijedovima bitova). Vrijeme je proporcionalno Hammingovoj udaljenosti, radije nego broju bitova ulaza.
Sljedeća [[C++]] funkcija računa Hammingovu udaljenost dvaju [[Cijeli broj|cijelih brojeva]] (smatranih binarnim vrijednostima, tj. slijedovima bitova). Vrijeme je proporcionalno Hammingovoj udaljenosti, radije nego broju bitova ulaza.


<pre>
<pre>
Redak 53: Redak 53:
</pre>
</pre>


== Reference ==
== Izvori ==


''Djelimice prilagođeno iz [[Federal Standard 1037C]].''
''Djelimice prilagođeno iz [[Federal Standard 1037C]].''


[[Richard W. Hamming]]. Error Detecting and [[Error Correcting Code]]s,
[[Richard W. Hamming]]. Error Detecting and [[Error Correcting Code]]s,
Bell System Technical Journal 26(2):147-160, [[1950]].
Bell System Technical Journal 26(2):147-160, [[1950.]]


[[Kategorija:Matematika]]
[[Kategorija:Matematika]]

[[af:Hammingafstand]]
[[bg:Разстояние на Хеминг]]
[[ca:Distància de Hamming]]
[[cs:Hammingova vzdálenost]]
[[de:Hamming-Abstand]]
[[en:Hamming distance]]
[[es:Distancia de Hamming]]
[[fi:Hammingin etäisyys]]
[[fr:Distance de Hamming]]
[[he:מרחק המינג]]
[[hu:Hamming-távolság]]
[[it:Distanza di Hamming]]
[[ja:ハミング距離]]
[[ko:해밍 거리]]
[[nl:Hammingafstand]]
[[pl:Odległość Hamminga]]
[[pt:Distância de Hamming]]
[[ro:Distanţă Hamming]]
[[ru:Расстояние Хэмминга]]
[[vi:Khoảng cách Hamming]]
[[zh:汉明距离]]

Posljednja izmjena od 24. svibnja 2023. u 13:25

3-bitna binarna kocka za pronalaženje Hammingove udaljenosti
Dvije ogledne udaljenosti: 100->011 ima udaljenost 3 (crveni put); 010->111 ima udaljenost 2 (plavi put)
4-bitna binarna hiperkocka za pronalaženje Hammingove udaljenosti
Dvije ogledne udaljenosti: 0100->1001 ima udaljenost 3 (crveni put); 0110->1110 ima udaljenost 1 (plavi put)

U teoriji informacije, Hammingova udaljenost dvaju stringova jednake duljine je broj pozicija u kojima su odgovarajući simboli različiti. Drugim riječima, mjeri minimalni broj supstitucija potreban za promjenu jednog u drugo, ili broj grešaka koji je jedan string transformirao u drugi.

Na primjer:

  • Hammingova udaljenost između 1011101 i 1001001 je 2.
  • Hammingova udaljenost između 1011101 i 1001001 je 2.
  • Hammingova udaljenost između 2143896 i 2233796 je 3.
  • Hammingova udaljenost između "toned" i "roses" je 3.

Posebna svojstva[uredi | uredi kôd]

Za fiksnu duljinu n, Hammingova je udaljenost metrika vektorskog prostora riječi te duljine, jer očito ispunjava uvjete nenegativnosti, identitete neprimjetnih (indiscernibles) i simetrije, a i može se lako dokazati potpunom indukcijom da također zadovoljava nejednakost trokuta. Hammingova udaljenost između riječi a i b se također može shvatiti kao Hammingova težina od ab, za prikladan izbor − operatora.

Za binarne stringove a i b Hammingova je udaljenost jednaka broju jedinica u a xor b. Metrički prostor od duljina-n binarnih stringova, zajedno s Hammingovom udaljenošću, je poznat kao Hammingova kocka - ekvivalentan je kao metrički prostor skupu udaljenosti vrhova grafa hiperkocke. Binarni string duljine n se također može shvatiti kao vektor u tretirajući svaki simbol stringa kao realnu koordinatu - ovim ugrađivanjem stringovi oblikuju vrhove n-dimenzionalne hiperkocke i Hammingova udaljenost stringova je jednaka Manhattan udaljenosti vrhova.

Povijest i primjene[uredi | uredi kôd]

Hammingova udaljenost je imenovana po Richardu Hammingu, koji ju je uveo u svom fundamentalnom radu o kodovima detekcije i ispravljanja grešaka (1950.). Koristi se u telekomunikacijama za brojenja broja obrnutih bitova binarne riječi fiksne duljine kao procjenu grješke, i stoga se ponekad zove signalna udaljenost. Analiza bitova Hammingovom težinom se koristi u nekoliko područja uključujući teoriju informacije, teoriju kodiranja i kriptografiju. Međutim, za uspoređivanje stringova različitih duljina, ili stringova u kojima se očekuju ne samo supstitucije već i umetanja i brisanja, prikladnija je složenija metrika kao što je Levenshteinova udaljenost.

Primjer algoritma[uredi | uredi kôd]

Python funkcija hamdist() računa Hammingovu udaljenost između dva stringa (ili "sekvencijalnih objekata" preslikanih u stringove) jednake duljine.

def hamdist(s1, s2):
        assert len(s1) == len(s2)
        return sum(z1 != z2 for z1, z2 in zip(s1, s2))

Sljedeća C++ funkcija računa Hammingovu udaljenost dvaju cijelih brojeva (smatranih binarnim vrijednostima, tj. slijedovima bitova). Vrijeme je proporcionalno Hammingovoj udaljenosti, radije nego broju bitova ulaza.

int hamudalj(int x, int y)
{
  int udalj = 0, vrij = x^y;
  
  while(vrij)
  {
    ++udalj; 
    vrij &= vrij - 1;
  }

  return udalj;
}

Izvori[uredi | uredi kôd]

Djelimice prilagođeno iz Federal Standard 1037C.

Richard W. Hamming. Error Detecting and Error Correcting Codes, Bell System Technical Journal 26(2):147-160, 1950.