302 Rozdział 13. Kodowanie i kompresja danych
Podnoszenie do potęgi może być zrealizowane poprzez zwykłe mnożenie, ale co zrobić z obliczaniem funkcji modulo? Jak sobie, na przykład, poradzić z wyliczeniem:
12 9876 0002 6000 0000 0054 mod N?
Jeśli wszakże przedstawimy powyższą liczbę jako wielomian o podstawie x=10 000, to otrzymamy znacznie prostsze wyrażenie:
12(.v4 mod N) + 987ó(.v' mod N) + 2{x2 mod A;) + ó(x mod N') + 54.
Wartości vr nawiasach są stałymi, które można wyliczyć tylko raz i „na sztywno" wpisać do programu kodującego'.
Kod, który zdecydujemy się używać, może się znacznie różnić od znanego kodu ASCII Jak pamiętamy, kod ASCII jest tabelą 8-bitowych znaków tekstu (nie wszystkie są, co prawda używane w języku polskim, ale nie ma to tutaj większego znaczenia). Jego podstawową cechą jest równa długość każdego słowa kodowego odpowiadającego danemu znakowi: 8 bitów'. Czy jest to obowiązkowe? Otóż nie, popatrzmy na przykład kodowania znaków pewnego alfabetu 5 znakowego (tabela 13 - 1).
Znak |
kod bitowy |
000 | |
001 | |
01 | |
* |
10 |
II |
Tabela 1.1 - I.
Przykład kodowania znaków pewnego alfa-hetu S-znakowego.
Gdzieś, w dalekiej dżungli, żyje lud, który potrafi za pomocą kombinacji tych 5 znaków wyrazić wszystko: wypowiedzenie wojny, rozejm, prośbę o żywność, prognozę pogody... Teksty zapisywane są na liściach pewnej odpornej na działanie pogody rośliny. W celu szybkiej komunikacji, został wymyślony system szybkiego przesyłania wiadomości przy pomocy sygnałów trąb niosących dźwięk na bardzo długie dystanse.