Kirjoittaja: Antti Laaksonen
Tiedoston pakkaaminen voi pienentää merkittävästi sen kokoa. Jokaiseen häviöttömään pakkausmenetelmään liittyy kuitenkin varjopuoli: jos menetelmä pienentää jonkin tiedoston kokoa, se vastaavasti suurentaa jonkin tiedoston kokoa.
Ajatellaan esimerkiksi, että pakkausmenetelmä pienentää tiedostoa, jonka koko on 1000 tavua. Pakkausmenetelmän täytyy tuottaa jokaisesta erilaisesta pakattavasta tiedostosta erilainen pakattu tiedosto, jotta pakkauksen purkaminen on mahdollista. Niinpä kaikille alle 1000 tavun pakattaville tiedostoille ei enää riitä omaa alle 1000 tavun pakattua tiedostoa.
ZIP-menetelmä pienentää tunnetusti monia tiedostoja. Niinpä se myös suurentaa joitakin tiedostoja!
Suunnittele 1000 tavun kokoinen tiedosto suuri.dat
, josta tehty ZIP-paketti vie mahdollisimman paljon tilaa.
Kun lähetät tiedoston Ohjelmointiputkan palvelimelle, se muutetaan ZIP-paketiksi seuraavalla Unix-komennolla:
zip suuri.zip suuri.dat
Tavoitteena on, että suuri.zip
on mahdollisimman suuri.
Tiedosto voi näyttää esimerkiksi seuraavalta:
AAAAA...A
Pisteiden kohdalla on 994 A-kirjainta. Tästä tiedostosta syntyy ZIP-paketti, jonka koko on 169 tavua, joten tiedosto pakkautuu hyvin. Tehtävässä on kuitenkin tarkoitus suunnitella tiedosto, joka ei pakkaudu hyvin!
78 henkilöllä on tulos. Suluissa oleva luku on pakatun tiedoston koko tavuina.
Blaze (1158), Metabolix (1158), Lumpio- (1158), Graphic (1158), Spongi (1158), Kray (1158), str4nd (1158), sooda (1158), Laitinen (1158), Chiman (1158), Torgo (1158), jmp (1158), Krisse7 (1158), Sisuaski (1158), aaämdee (1158), Ape (1158), Milo (1158), L2-K2 (1158), epokal (1158), Dizzor (1158), Sharph (1158), SirDayBat (1158), User137 (1158), Konvehti (1158), FooBat (1158), jlaire (1158), -tossu- (1158), Legu (1158), Sien1 (1158), Niko (1158), JP_94 (1158), Grez (1158), Meitzi (1158), Masfonos (1158), aarnis (1158), Claw (1158), Anaatti (1158), Laquendi (1158), ajt (1158), janihy (1158), qalle (1158), tesmu (1158), teppuli (1158), lukujenVihaaja (1158), Goasd (1158), os (1158), temu92 (1158), Juice (1158), killedwhale (1158), Mizou (1158), pontso (1158), kllp (1158), Jhuunhym (1158), Laakeri (1158), HapTech (1158), Hansen (1158), akiky (1158), Shiona (1158), symbols (1158), carabia (1158), isashkar (1158), TapaniS (1153), Ropertto IV (1148), öppis (1066), Moiman (1032), RQ (1026), Teuro (968), qwerty12302 (951), decoy (942), lare290 (903), pavb (853), heisti (849), tositoo (718), ptinsk (625), henkkeli (468), Macro (179), ilx (169), jannej (169)
Kirjaudu sisään Ohjelmointiputkaan, niin voit lähettää vastauksen tehtävään.
Katso myös Putkaposti 41: Huono pakkaus.