Shannon-Fano kódolást kellene leprogramoznom c++ban, állományból beolvasni a mondatokat, minden karakternek kiirni a probabilityjét, utána pedig kódolni az adott szöveget. Kaphatnék egy kis segitséget?
Mi a kérdés? Hol akadtál el? Amúgy tök jó feladat ez, hol van ilyen házi?
A valószínűségek meg vannak adva?
A program a karaktereket számolja meg a szövegben s az alapján számitsa ki melyiknek mennyi a valószinűsége.
Sajnos nagyon nem megy ez a feladat és holnapra kellene leadni.
Kérdést tegyél fel, ne feladatot.
Az nem nagyon hat meg senkit, hogy neked mi nem megy.
Csinálsz egy osztályt, ami egy valószínűséget, egy karaktert, és a karakter kódolt változatát képes (a belőle példányosított objektum) tárolni.
Minden előforduló karaktert bepakolsz egy fent említett típusú objektumba úgy, hogy valószínűség szerint CSÖKKENŐ sorrendbe rendezett listába beszúrod őket. (A valószínűségeket te számolod ki, az easy)
A RENDEZETT listát szépen rekurzívan (vagy ahogy akarod) két részre darabolod fel, úgy hogy a részek elemeinek a (valószínűségi) összeg minimálisan térjen el egymástól.
Az egyik (bal oldali) részbe kerülő lista elemeihez fűzz '0' karaktert a kódolt változatot tároló tagváltozóhoz. A lista másik részébe kerülő elemekhez pedig '1'-et. Ezeket a listákat tovább bontod, amíg n db 1 elemű listád nem lesz. Kész a kódlista. Nagyon fontos hogy referenciákat dobálj mindig át a részlistákba, mert végül az eredeti rendezett listát fogod használni.
Végig mész a mondaton, megkeresed a rendezett listában az karakterhez tartozó kódot és azt kiírod. Bináris keresés jó lesz.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!