Polyalfabetická statistika
Filtr: stat_polyVerze: 1.0
Autor: Vojtěch Beil
Datum: 26. prosince 2002
Popis:
Polyalfabetická statistika
Tento filtr provádí v textu statistickou analýzu a jako výsledek vrátí četnost skupin písmen. Tyto informace mohou pomoci při luštění polyalfabetických šifer. Tento filtr byl koncipován tak, že s jeho pomocí lze zjištovat četnost dvojic, trojic.
Maximální délka zkoumaných řetězců je omezena interně na 8. Při pokusu o takovou statistiku bychom si ale měli uvědomit, kolik paměti program nárokuje. Dejme tomu, že zkoumáme jednoduchou abecedu, kde písmena s diakritikou jsou totožná s těmi bez diakritiky. Při zkoumání dvojic je nárokovaná pamět rovna asi 30 x 30 x 4 byty = 3600 bytů (4 byty na uložení čísla typu integer). Při zkoumání trojic je to 3600 x 30 = 108000 bytů. Při zkoumání pětic potřebujeme 108000 x 30 = 3240000. Šestice 97200000 bytů, což je asi 97MB paměti. Navíc ani délka výstupu není zanedbatelná.
Příklad:
zelenina je většinou zelená ... 2 ... 0.076923076923 : [Ii][Nn] 2 ... 0.076923076923 : [Ee][Nn] 2 ... 0.076923076923 : [Ee][Ll] 2 ... 0.076923076923 : [Zz][Ee] 2 ... 0.076923076923 : [Ll][Ee] 1 ... 0.038461538462 : [Nn][Aa] 1 ... 0.038461538462 : [Nn][Oo] 1 ... 0.038461538462 : [Oo][Uu] 1 ... 0.038461538462 : [Ěě][Tt] 1 ... 0.038461538462 : [Tt][Šš] 1 ... 0.038461538462 : [Šš][Ii] 1 ... 0.038461538462 : [Nn][Ii] 1 ... 0.038461538462 : [Nn][Áá] 1 ... 0.038461538462 : [Vv][Ěě] 1 ... 0.038461538462 : [Jj][Ee] Celkem precteno: 27, useku rozpoznano: 26
Parametry:
option(n) nastavuje jaká písmena budou specifikována, normálně nastaveno na 2- hodnota 0 - anglická abeceda, 1 - česká abeceda (znaky s i bez diakritiky jsou stejná), 2 - česká abeceda (znaky s diakritikou jsou počítána jako samostatná), 3 - podle typu písmen
- normálně je se výstup seřazuje - hodnota 1
- normálně je tato volba vypnuta
- normálně je nastaveno na 2 tj. zkoumají se dvojice
- normálně je nastaveno na 0