numerosarjojen

Oletetaan, että on vaikka 1000 numeroa sarjassa väliltä 0-255. Pystyykö muodostamaan mitään kaavaa, jonka kuvaaminen vie vähemmän tilaa kun tuollaisen numerosarjan ja se kaava tuottaisi täsmälleen samat 1000 numeroa oikeassa järjestyksessä?
3261
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

On olemassa monia häviöttömiä pakkausalgoritmeja, joihin en tosin ole perehtynyt. Parhaimman algoritmin valitseminen on varmasti tapauskohtaista.

Äänestä

Niin kuin tuossa jo kommentoitiinkin, on olemassa paljon erilaisia häviöttömiä pakkausalgoritmeja. Toki algoritmia voi kutsua kaavaksi, sitähän se oikeastaan on, mutta pakkauksessa idea on pikemminkin fiksata kaava ja tuoda kaavan parametrit (syöte) ulkopuolelta. Tämä parametrijoukko on se pakattu tiedosto.

Tässä jotain esimerkkejä ideoista millä voi pelata:

- Run-length-encoding: Korvataan pitkät sarjat kuten 4,4,4,4,4 sarjoilla kuten 4,6. Toki jokin erikoisjärjestely tarvitaan jotta lukumäärä 4 erotetaan data 4:sta.

- LZW ja muut sanakirjamenetemät: Ideana on koodata toistuvat sarjat 1,2,3,1,2,3,1,2,3 jollain sanakirja-avaimella. Eli vaikka jos 10=1,2,3, niin tuo pakkautuu muotoon 10,10,10.

- Huffman-koodaus ja muut entropiamenetelmät: Jos numeroiden jakauma ei ole tasainen, numeroiden koodausta (bittimäärää) voidaan muuttaa sillä tavalla, että data mahtuu pienempään tilaan.

- Numerot voidaan myös ensin järjestää sopivasti (BWT) tai niille voidaan ensin tehdä jokin häviöllinen sovellusriippuva muunnos kuten differentiaalikoodaus, LPC, Kosinimuunnos jne. Mutta näissä jälkimmäisissä häviää hieman tarkkuutta.

Tuolta voi opiskella lisää:

http://en.wikipedia.org/wiki/Data_compression

Äänestä

"Pystyykö muodostamaan mitään kaavaa, jonka kuvaaminen vie vähemmän tilaa kun tuollaisen numerosarjan"

Edellä mainittiin jo pakkauksesta, mutta tarkasti lukien kysymystäsi vastaus on ei. Ei ole mitään yleispätevää keinoa pakata *kaikkia* numerosarjoja, tai ylipäätään mitään dataa, pienempään tilaan. Jokaisella pakkauskeinolla on jokin merkkijono, jonka esittäminen vie alkuperäistä suuremman tilan vaikka enin osa voitaisiinkin pakata pienempään tilaan.

Tämän todistaminen on suht helppoa kun ajattelet pakkauksen kuvauksena merkkijonoilta merkkijonoille ja mietit lähtö- ja tulojoukkojen kokoja.

Äänestä

Kommentoi aloitusta


tiivistäminen kirjoitti:

Oletetaan, että on vaikka 1000 numeroa sarjassa väliltä 0-255. Pystyykö muodostamaan mitään kaavaa, jonka kuvaaminen vie vähemmän tilaa kun tuollaisen numerosarjan ja se kaava tuottaisi täsmälleen samat 1000 numeroa oikeassa järjestyksessä?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu