Pomaličku se přibližujeme k ideálnímu kompresnímu algoritmu, kdy v sobě bude mít dekompresní program uloženou tabulku všech možných výstupů seřazenou podle pravděpodobnosti výskytu a zkomprimovaný soubor bude obsahovat pouze indexy do této tabulky :-)
Problém je, že velikost indexů bude větší než ta data. Mé oblíbené https://katiesteckles.co.uk/pisearch/ mi najde moje 9čísel telefonní číslo, ale najde mi ho na 10čísel indexu.
Říkal jsem si, jestli tam ten smajlík musím psát, když je to přece jasné, že je to vtip. No vidím, že ani smajlík nestačí.
Z toho si nic nedělejte.
My máme v práci jednoho bombarďáka, kterej je sice šikovnej, ale „všude byl a všechno zná“ a když někdy výjimečně hodí vtip, taky málokdo pochopí, že to je vtip. To je holt úděl těch nadprůměrně inteligentních.
Doporučuji pro tyto účely používat spíše mrkacího smajlíka. ";-)"
13. 10. 2025, 09:55 editováno autorem komentáře
Pokud máte (bezztrátový) kompresní algoritmus a použijete ho na všechny možné vstupy (řekněme 9-ciferná čísla), pak součet velikostí výstupů nemůže být menší než součet velikostí vstupů. Je to jen o tom, že některé vstupy považujeme za více pravděpodobné než jiné a tedy je v tom algoritmu preferujeme. Například v tom příkladu s indexy bychom malé indexy kódovali méně bity než velké.
11. 10. 2025, 21:43 editováno autorem komentáře
Mimochodem, ta stránka https://katiesteckles.co.uk/pisearch/ ve skutečnosti nehledá ve skutečném π. Přesněji hledá jen v prvních 100 000 cifrách, které má uložené tady: https://katiesteckles.co.uk/pisearch/pi_const.js. Pokud ale hledané číslo nenajde, tak si výsledky vycucá z prstu – jak index výsledku, tak cifry vlevo a vpravo od odhledaného řetězce; klíčové řádky přímo z vloženého skriptu jsou tyhle:
var SearchResult = pi.search(SearchString);
...
if (SearchResult == -1) {
var num = 10**SearchString.length
SearchResult = Math.floor((num/10)+(9.9*num*seedrng()));
var chunksToOutput = [Math.floor(1000000000000000*seedrng()).toString(), SearchString, Math.floor(1000000000000000*seedrng()).toString()];
...
}12. 10. 2025, 19:26 editováno autorem komentáře
Na druhou stranu, dá se stoprocentně dokázat, že udaná sekvence někde v tom Pí není?
Takže nesprávně je jen ten index.