Text-tömörítőprogram algoritmus bináris fa nélkül hogyan? (bővebben lent)
Olyan algoritmust lehet írni, amely text fájlokat tömörít úgy, hogy mintákat keres, de nem használ bináris fát, se run-length kódolást?
Pl. Python-ban van ilyen modul készen, ami tudja ezt?
Például van olyan szöveg, amiben lehet mintákat keresni: ablak, bab, abrakadabra, baba, ...
Lehet ilyet, csak kalap szaar lesz a tömörítés hatásfoka.
Simán elég transzkódolni a karaktereket, mivel egy byte 256 lehetőség, az angol ABC meg csak 26 betű. A 8 bites kódot lecseréled 5 bitesre és már nyertél helyet, pedig még nem is tömörítetted.
Igaz, valójában tömörítés nincs is. Ezt felejtsd is el, hogy te tömöríteni fogsz, mert nem lehet.
6 (2021.09.29. 22:36): Bocs mi van? Mi köze ennek a válasznak a kérdéshez? Mi köze egy algoritmusnak ahhoz, hogy te mit tákolsz autohotkey-ben? Itt felsorol legalább 30 féle algoritmust, nem mindegyik bin.fa és run-length alapú: [link]
Van köztük hatékonyabb kevésbé hatékony, gyorsabb lassabb. Innen érdeme tovább haladjál. Sok sikert.
8: Ezt hívják úgy, hogy "off topic" hozzá szólás: Ld. általálnos felhasználó szabályok:
"(i) Tilos szándékosan hátráltatni a szolgáltatást, bármilyen módon megzavarni a Weboldal működését (pl. flood, spam, offtopic, provokáció, script hozzászólások)."
A kérdés arról szól: "Olyan algoritmust lehet írni" itt az algoritmusról volt szó. Sehol nem szerepel a kérdésben az "átfordítás". Csak a Te kedvedért az algoritmus itt azt jelenti, hogy milyen módszer szerint működk a dolog. Ez totálisan független, hogy azt BASIC, C, FORTRAN, Cobol, Pascal, Python, C#, C++, Java, Javascript, PHP és sorolhatnám milyen nyelveken valósítjuk meg. Ez általában (és itt nem kevés) matekot tartalmazó dolog, amiben azt vizsgáljuk, hogy milyen módon lehet egy szöveget tömöríteni. Azaz az eredeti szöveg tárolására kellett pl. 100 kByte, de szeretnénk pl. csak 80kByte-ba elrakni (ez egy 80%-os tömörítés, más fogalmak szerint 20%-is aztól függően, hogy honnan nézzük).
Ezek az algoritmusok a szövegek (és az adott nyelvek, mert ezek között vannak nyelv függőek) sajátosságain, szabályain alapulnak (kezdve ilyen fogalmakkal, hogy entrópia, információtartalom stb.) nem véletlen, hogy Shannon neve sok helyen fel-fel bukkan. Jelenleg több tucat ilyen algoritmus létezik. Erre linkeltem is oldalt, ahol ezek fel vannak sorolva, hogy onnan keresgélhet a kérdező. Illetve szintén a wiki szócikk alján van egy link gyüjtemény ahol az egész matekjárval foglalkoznak ami alapján esetleg ki találhat új algoritmust.
Ha meg megvan az algoritmus, után, hogy milyen nyelve valósítja meg (feltéve ha az adott nyelv valóban teljesértékű programozási nyelv) az már kb. azonos eredményt ad.
#8 te magadnak válaszolgatsz?
Arra akarták felhívni a figyelmed, hogy bár a kérdezö említi a pythont, de alapvetöen a kérdés tömörítési algoritmusokra vonatkozik. Te meg jössz az autohotkey-el. Ráadásul az autohotkey egy specializált nyelv windowsos workspace automatizálásra.... Tömörítöalgoritmusokat írni benne kicsit olyan, mint webes backendet írni assemblyben: lehet, de minek.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!