Kod Graya - jak sprawdzic?

Feb 07, 2004 4 Replies

Witam. Przeszukalem grupe (i nie tylko), ale nie znalazlem rozwiazania mojego problemu, wiec zdecydowalem sie napisac. O co chodzi: czy istnieje sposob (jesli tak to jaki) na sprawdzenie czy podana sekwencja 0 i 1 jest kodem Graya? Mam napisany program ktory konwertuje sekwencje w kodzie Graya na kod Excess 3 i chce dorobic mozliwosc sprawdzenia czy sekwencja wejsciowa jest poprawna.



Z gory dziekuje za wszystkie odpowiedzi. Michal.


Zauwa¿, ¿e w kodzie Graya kolejne s³owa ró¿ni± siê tylko (!) jednym bitem. Mo¿e Ciê to jako¶ natchnie.

Jacek Studziñski

-- _N_O_S_P_A_M snipped-for-privacy@poczta.onet.pl (usuñ _N_O_S_P_A_M_ z adresu)

Wszystkie mozliwe kombinacje bitow sa dopuszczalnymi slowami kodu Graya. Mozesz jedynie sprawdzac czy zmiany nastepowaly po jednym bicie.

J.

zakladajac ze zmiany nastepuja sekwencyjnie ... co w ogolnosci wcale nie musi byc prawda. choc zastosowanie k. G. to glownie kodery, wiec mozna przyjac ze zalozenie w wiekszosci przypadkow jest prawdziwe :)

@

Skorzystaj z definicji: odleglosc Hamminga (tj. liczba pozycji na ktorej roznia sie dane slowa) pomiedzy kazdymi kolejnymi dwoma ciagami musi byc dokladnie rowna 1. A to juz latwo sprawdzic wykonujac na nich xor i sprawdzajac, czy wynik jest potega 2 (tzn. czy zawiera dokladnie jedna jedynke). Natomiast testowanie tego ostatniego warunku wykonuje sie trywialna operacja x & (x-1) -- wyjdzie zero wtedy i tylko wtedy, gdy x jest potega 2.

Pozdrawiam Piotr Wyderski

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required