Vývojový diagram Hammngova vzdialenosť

Programovacie jazyky, rady, poradňa...
Wegeta
Novice
Novice
Príspevky: 3
Registrovaný: 20 aug 2010, 15:09

Vývojový diagram Hammngova vzdialenosť

Príspevok od používateľa Wegeta »

Zdravím vedel by mi niekto pomocť vytvoriť na toto diagram ? lebo mne to akosi nejde

Hammingova vzdialenosť medzi dvoma reťazcami bitov je počet bitov v ktorých sa retazce odlišuju. To je možné vypočitat napr prostrednictvom funkcie XOR napr.:

A= 0100101000
B= 1101010100
A XOR= 1000111110

hammingova vzdialenosť H medzi týmito 10-bitovými retazcami je 6, pretože počet jednotiek vo vyslednom retazci je 6.

Vašou ulohou je určiť všetky možné retazce B, ak poznáte retazce A a Hammingovu vzdialenosť H.

Vstup nech sú dve celé čisla vačšie ako 1, N a H predstavujúce počet bitov a Hammngovu Vzdialenosť.
Ulohou je nájsť všetky možné variácie druhého reťazca B, ak je známa Hammingova vzdialenosť a zároven prvý reťazec A obsahuje samé nuly o počte N.

Ulohou je tiež oštetriť neplatné hodnoty čísel zadaných na vstupe. V takom prípade nech program vypíše oznam o chyb a ukončí sa.

Výstupom nech sú všetky možné kombinácie reťazca B, čiže všetky možné kombinácie retazcov o dlžke N bitov s počtom H jednotiek. Platí že počet takýchto retazcov je rovný kombinatorickému výpočtu C(N,H) teda všetky možné kombinácie s N-H nulami a H jednotkami, čo je možne vypočitať aj ako:

N!
-------
(N-H)! H!

kedže počet vystupov može byť veľmi vyskoý vstupne hodnoty N a H nech su obmedzené na intervaly 1<N<=10 a 1<H<=10

Ukažkový vstup:

N=4 H=2

Ukážkový výstup:

0011
0101
0110
1001
1010
1100
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Vývojový diagram Hammngova vzdialenosť

Príspevok od používateľa audiotrack »

Domáce úlohy tu za nikoho robiť nebudeme. Pomôžeme ti opraviť chyby, ale musíš preukázať aspoň trošku snahy
Wegeta
Novice
Novice
Príspevky: 3
Registrovaný: 20 aug 2010, 15:09

Re: Vývojový diagram Hammngova vzdialenosť

Príspevok od používateľa Wegeta »

Problémom je pre mna čast výpisu bitov , vobec nemám tušenie ako vypíšem všetky riešenia , nenapadá ma už nič nevedel som sa pohnúť či už pri náhodnom hádzaní jednotiek a nuliek za učelom vypisania riešení alebo zmenami čísel v roznych cykloch. Skúsil som rozne varianty ale asi som na toľko blbý že na riešenie nedokážem prísť..
weroro
Flash coder
Flash coder
Používateľov profilový obrázok
Príspevky: 3206
Registrovaný: 14 feb 2009, 22:34
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Vývojový diagram Hammngova vzdialenosť

Príspevok od používateľa weroro »

Wegeta: audiotrack tým chcel povedať, že máš ukázať zdrojový kód, ktorý si zatiaľ napísal.


// hopla :smt017
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Vývojový diagram Hammngova vzdialenosť

Príspevok od používateľa audiotrack »

on má za úlohu nakresliť vývojak, nie napísať kod :)
harrison314
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 8219
Registrovaný: 27 máj 2009, 20:42
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: Vývojový diagram Hammngova vzdialenosť

Príspevok od používateľa harrison314 »

Maly hint XOR, je sama sebe inverzna operacia => (A xor B) xor B = A
A neviem ci sa vypisom do dvojkovej sustavy musis vobec zaoberat, ved vo vyojovom diagrame si vies vymysliet akukolvek operaciu, ale ci to pouzit zavisi od cloveka co to bude opravovat.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: Vývojový diagram Hammngova vzdialenosť

Príspevok od používateľa audiotrack »

presne tak. Funkciu xor nemusíš rozkreslovať na rozdelovanie po bitoch a negácie. Je to proste funkcia, ktorá je základná a v každom jazyku už implementovaná. Výpis po bitoch by som tiež neriešil, to záleží od jazyku. V céčku je to záležitosť pár znakov pre printf kde definujem že to chcem binárne. To je už záležitosť implementácie a nie návrhu.

tvoj diagram bude mať načítanie vstupu, ošetrenie vstupu, vypočítanie 2^N, generovanie čísel od 0 po vypočítanú hodnotu, overovanie či má binárny zápis čísla H jednotiek

takže jedouchý cyklus, a dve funkcie. Overovanie vstupu (či sú iba jednotky a nuly) a overovanie počtu jednotiek
Napísať odpoveď