www.wikidata.uk-ua.nina.az
Kod Greya odna iz sistem koduvannya informaciyi v yakij dva poslidovni kodi vidriznyayutsya znachennyam lishe odnogo bita Fragment storinki patenta Greya Zmist 1 Zagalni vidomosti 2 Vikoristannya 3 Algoritmi peretvorennya 3 1 Peretvorennya dvijkovogo kodu v kod Greya 3 2 Peretvorennya kodu Greya v dvijkovij kod 3 3 Generaciya koda Greya 4 Tablicya vidpovidnosti mizh dvijkovim kodom ta kodom Greya 5 Div takozhZagalni vidomosti RedaguvatiDlya koduvannya oznak mozhna skoristatis najprostishim variantom dvijkovim znachennyam ciyeyi oznaki Todi legko vikoristovuvati bitovi ryadki fiksovanoyi dovzhini dlya podannya vsih mozhlivih znachen ciyeyi oznaki Napriklad desyatkovi chisla 7 i 8 mozhna legko zakoduvati u dvijkovi chisla B 7 011 i B 8 100 vikoristovuyuchi dvijkovu tehniku Prote yaksho mi hochemo peremistitisya z fenotipu 7 u fenotip 8 to povinni zminiti vsi tri biti v yih zobrazhenni vid B 7 011 do B 8 100 Inakshe kazhuchi pri roboti GA neobhidni tri okremi diyi dlya peremishennya vid rozv yazku 7 do rozv yazku 8 yaki prizvedut do dodatkovih vitrat chasu Z inshogo boku yaksho mi hochemo peremistitisya vid rozv yazku 7 do rozv yazku 8 to nam neobhidna lishe odna operaciya Ce uskladnyuye vikoristannya GA j pogirshuye jogo zbizhnist Shob uniknuti cogo krashe vikoristovuvati koduvannya v yakomu znachennya rozriznyayutsya na odin bit Takim ye kod Greya Rozglyanemo princip jogo pobudovi Desyatkovij Kod Greya 0 0000 1 0001 nulovij rozryad vicherpav svoyi resursi 0 1 stavitsya dzerkalo i vid nogo vidobrazhayutsya znachennya 0 go rozryadu ale z odiniceyu v starshomu rozryadi 2 0011 3 0010 Tak samo i z reshtoyu rozryadiv 4 0110 5 0111 6 0101 7 0100 8 1100 9 1101Vikoristannya Redaguvati nbsp Krugovij enkoder z tribitnim kodom GreyaVikoristannya kodiv Greya zasnovano nasampered na tomu sho vin minimizuye efekt pomilok pri peretvorenni analogovih signaliv u cifrovi napriklad u bagatoh vidah datchikiv Kodi Greya chasto zastosovuyutsya v datchikah enkoderah Yih vikoristannya zruchno tim sho dva susidnih znachennya shkali signalu vidriznyayutsya lishe v odnomu rozryadi Takozh voni vikoristovuyutsya dlya koduvannya nomera dorizhok v tverdih diskah Kod Greya mozhna vikoristovuvati takozh i dlya virishennya zadachi pro Hanojski vezhi Shiroko zastosovuyutsya kodi Greya i v teoriyi genetichnih algoritmiv dlya koduvannya genetichnih oznak yaki predstavleni cilimi chislami Kod Greya vikoristovuyetsya dlya generaciyi spoluchen metodom obertovih dverej Algoritmi peretvorennya RedaguvatiPeretvorennya dvijkovogo kodu v kod Greya Redaguvati Kodi Greya legko vihodyat z dvijkovih chisel shlyahom pobitovoyi operaciyi viklyuchne ABO z tim zhe chislom zrushenim vpravo na odin bit Otzhe i j bit kodu Greya Gi virazhayetsya cherez biti dvijkovogo kodu Bi nastupnim chinom G i B i B i 1 displaystyle G i B i oplus B i 1 nbsp de displaystyle oplus nbsp operaciya viklyuchne ABO biti numeruyutsya sprava nalivo pochinayuchi z molodshogo Nizhche navedeno algoritm peretvorennya z dvijkovoyi sistemi chislennya v kod Greya zapisanij na movi C mova programuvannya unsigned int grayencode unsigned int g return g g gt gt 1 Toj zhe algoritm zapisanij na movi Pascal function BinToGray b integer integer begin BinToGray b xor b shr 1 end Priklad peretvoriti dvijkove chislo 10110 v kod Greya 10110 01011 11101 Peretvorennya kodu Greya v dvijkovij kod Redaguvati Zvorotnij algoritm peretvorennya kodu Greya v dvijkovij kod mozhna viraziti rekurentnoyu formuloyu B i B i 1 G i displaystyle B i B i 1 oplus G i nbsp prichomu peretvorennya zdijsnyuyetsya pobitno pochinayuchi zi starshih rozryadiv i znachennya Bi 1 vikoristovuvane u formuli obchislyuyetsya na poperednomu kroci algoritmu Dijsno yaksho pidstaviti v cyu formulu vishenavedenij viraz dlya i go bita kodu Greya otrimayemo B i B i 1 G i B i 1 B i B i 1 B i B i 1 B i 1 B i 0 B i displaystyle B i B i 1 oplus G i B i 1 oplus B i oplus B i 1 B i oplus B i 1 oplus B i 1 B i oplus 0 B i nbsp Odnak navedenij algoritm pov yazanij z manipulyaciyeyu okremimi bitami nezruchnij dlya programnoyi realizaciyi tomu na praktici vikoristovuyut vidozminenij algoritm B k i k N G i displaystyle B k bigoplus limits i k N G i nbsp de N kilkist bitiv v kodi Greya dlya zbilshennya shvidkodiyi algoritmu za N mozhna vzyati nomer starshogo nenulovogo bita kodu Greya znak displaystyle oplus nbsp oznachaye pidsumovuvannya za dopomogoyu operaciyi viklyuchne ABO tobto i k N G i G k G k 1 G N 1 G N displaystyle bigoplus limits i k N G i G k oplus G k 1 oplus oplus G N 1 oplus G N nbsp Dijsno pidstavivshi v formulu viraz dlya i go bita kodu Greya otrimayemo B k i k N G i i k N B i B i 1 B k B k 1 B k 1 B k 2 B N 1 B N B N B N 1 displaystyle B k bigoplus limits i k N G i bigoplus limits i k N B i oplus B i 1 B k oplus B k 1 oplus B k 1 oplus B k 2 oplus oplus B N 1 oplus B N oplus B N oplus B N 1 nbsp B k B k 1 B k 1 B N B N B N 1 B k B N 1 B k displaystyle B k oplus B k 1 oplus B k 1 oplus oplus B N oplus B N oplus B N 1 B k oplus B N 1 B k nbsp Tut peredbachayetsya sho bit sho vihodit za ramki rozryadnoyi sitki B N 1 displaystyle B N 1 nbsp dorivnyuye nulyu Nizhche privedena funkciya na movi S sho realizuye danij algoritm Vona zdijsnyuye poslidovnij zsuv vpravo i pidsumovuvannya vihidnogo dvijkovogo chisla do tih pir poki chergovij zsuv ne obnulit dodanok unsigned int graydecode unsigned int gray unsigned int bin for bin 0 gray gray gt gt 1 bin gray return bin Toj zhe samij algoritm zapisanij na movi Paskal function GrayToBin b integer integer var g integer begin g 0 while b gt 0 do begin g g xor b b b shr 1 end GrayToBin g end Priklad peretvoriti kod Greya 11101 v dvijkovij kod 11101 01110 00111 00011 00001 10110 Shvidke peretvorennya 8 16 24 32 razryadnogo znachennya kodu Greya v dvijkovij kod na movi BlitzBasic Function GRAY 2 BIN X Return X Xor X And 88888888 Shr 4 Xor X And CCCCCCCC Shr 2 Xor X And EEEEEEEE Shr 1 End Function Generaciya koda Greya Redaguvati Kod Greya dlya n bit mozhe buti rekursivno pobudovanij na osnovi kodu dlya n 1 bit shlyahom perevertannya spisku bit tobto zapisuvannyam kodiv u zvorotnomu poryadku konkatenaciyi vihidnogo i perevernutogo spiskiv dopisuvannya nuliv na pochatku kozhnogo kodu u vihidnomu spisku ta odinic u pochatok kodiv v perevernutomu spisku Tak dlya generaciyi spisku dlya n 3 bit na pidstavi kodiv dlya dvoh bit neobhidno vikonati nastupni kroki Kodi dlya n 2 bit 00 01 11 10Perevernutij spisok kodiv 10 11 01 00Ob yednanij spisok 00 01 11 10 10 11 01 00Do pochatkovogo spisku dopisani nuli 000 001 011 010 10 11 01 00Do perevernutogo spisku dopisani odinici 000 001 011 010 110 111 101 100Nizhche predstavlenij odin z algoritmiv stvorennya poslidovnosti kodu Greya zadanoyi glibini zapisanij na movi Perl my depth 16 generate 16 Gray codes 4 bits wide each my gray codes 0 1 while scalar gray codes lt depth my forward half map 0 gray codes my reverse half map 1 reverse gray codes gray codes forward half reverse half Rekursivna funkciya pobudova kodu Greya movoyu C n dovzhina sho potribna m pokaznik na masiv vsi kodi dovzhinoyu menshi za n depth parametr rekursiyi int gray int n int m int depth int i t 1 lt lt depth 1 if depth 0 m 0 0 else masiv zberigaye desyatkovi zapisi dvijkovih sliv for i 0 i lt t i m t i m t i 1 1 lt lt depth 1 if depth n gray n m depth 1 return 0 Shvidke peretvorennya 8 16 24 32 razryadnogo binarnogo kodu v kod Greya movoyu BlitzBasic Function BIN 2 GRAY X Return X Xor X And EEEEEEEE Shr 1 End FunctionTablicya vidpovidnosti mizh dvijkovim kodom ta kodom Greya RedaguvatiCile Dvijkovij kod Kod Greya0 0000 00001 0001 00012 0010 00113 0011 00104 0100 01105 0101 01116 0110 01017 0111 01008 1000 11009 1001 110110 1010 111111 1011 111012 1100 101013 1101 101114 1110 100115 1111 1000Div takozh RedaguvatiKodi Hemminga Kod Dzhonsona Otrimano z https uk wikipedia org w index php title Kod Greya amp oldid 38073014