-
Data: 2014-04-30 13:22:14
Temat: Re: Liczby całkowite zmiennej długości
Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]On 30.04.2014 08:30, Borneq wrote:
> W dniu 2014-04-29 23:05, bartekltg pisze:
>> To niech tworzą system pozycyjny o podstawie 255,
>> a liczba "FF" odpowiada spacji. Dla liczb większych
>> niż 255^7 = 7e16 jest to sposób oszczędniejszy.
>> Oczywiście liczbę bitów przeznaczonych na cyfrę
>> można modyfikować, dobierając do potrzeb.
>
> Może kodowanie arytmetyczne:
> strumień bitów, kod końca liczby, kod zmiany znaku (zwykle po sobie mają
> ten sam znak) oraz każda liczba (oprócz zera) będzie zaczynała się od
> jedynki - można ja pominąć dodatkowo kod rzadko występującego zera.
> 0 i jedynka - prawdopodobieństwo 114/256
> zero - 1/256
> zmiana znaku - 4/256
> znak końca liczby - 23/256
Wzięcie 0 i 1 to dość głupi pomysł. W zasobożernym kodowaniu
arytmetycznym ujdzie, ale przy huffmanie dostaniesz
jednobitowy kod zera i dwubitowy kod jedynki. I dla długiuch
liczb leżymy.
Weź większe paczki za symbol.
Znak zera jest niepotrzebny. Zero to koniec '0''K'
albo nawet sam znak końca. Jeśli wystąpią dwa po kolei, to znaczy,
że było tam zero.
> To by było optymalne zakodowanie: na jedną liczbę przypadało by prawie
> równo 16 bitów,
> tak więc liczba miała by 9.64 bita ale zakodowana za pomocą 11.25 bita,
> do tego dochodziłby narzut w postaci 3.476 bita jako znacznik końca
> liczby do każdej liczby, nie mówiąc o znacznikach zmiany znaku
> To jest rozwiązanie optymalnie entropicznie, ale nie podoba mi się że
> przy każdej liczbie niemal 3.5 bita musi być znacznika końca, w mojej
> prostszej wersji liczby leciały bez znacznika bo każda liczba tyle samo
> bitów, poza tym 16% narzut na same bity liczby bo prawdopodobieństwo
> każdego bitu to 44% a nie 50%
> Myślę że metoda entropiczna nie uwzględnia tego że w każdym obiekcie
> rozkład długości liczb skupia się między 10 a 15 bitów a nie jest od 0
> do nieskończoności.
Każda metoda uwzględnia to, co jej powiesz.
Teraz trzeba wziąć symbole '0'-'n' i sprawdzić, dla jakiego n będziesz
miał najlepszy wynik.
ponieważ liczby są krótkie, znak końca linii pewnie wyjdzie jednobitowy,
czyli, jak rozmawialiśmy wcześniej, praktycznie dostaniesz to
amo co używając jednego bitu za znacznik 'jeszcze jedna cyfra'
w kodowaniu 8 lub 16 bitowym.
Jeśli rzeczywiśćei skupiają się do 15 bitów, a mniej niż 9 prawie
nigdy nie mają, zastanowiłbym się nad użyciem 15+1 bitów,
wtedy prawie na pewno użyjesz 16, a używając 7+1 prawie nic
nie oszczędzasz, bo jednocyfrowe (7 bitopwa cyfra) zdarzają
się rzadko.
> A tak to optymalne zdaje się że jest gorsze od kodowania po maksymalnej
> długości delty w elemencie.
Nie wiem, co do dlugość delty. Odnosisz się do jakeijś poważniejszej
metody podanej w tym watku, czy do interpretacji tych danych (której
nie znamy;p)
pzdr
bartekltg
Najnowsze wątki z tej grupy
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
- Re: (PDF) Surgical Pathology of Non-neoplastic Gastrointestinal Diseases by Lizhi Zhang
- CfC 28th Ada-Europe Int. Conf. Reliable Software Technologies
- Młodzi programiści i tajna policja
- Ada 2022 Language Reference Manual to be Published by Springer
Najnowsze wątki
- 2024-11-11 Wyważanie kół rowerowych
- 2024-11-11 Kosz, gdzie??
- 2024-11-11 Coraz mniej ludzi robi prawo jazdy
- 2024-11-11 Opole => SAP HANA Cloud Dev / Data Engineer <=
- 2024-11-11 Warszawa => Spedytor Międzynarodowy <=
- 2024-11-11 Lublin => Senior PHP Developer <=
- 2024-11-11 Marki => Senior PHP Symfony Developer <=
- 2024-11-11 Chrzanów => Team Lead / Tribe Lead FrontEnd <=
- 2024-11-11 Gliwice => Specjalista ds. public relations <=
- 2024-11-11 Gdańsk => Kierownik Działu Spedycji Międzynarodowej <=
- 2024-11-11 Gdańsk => Head of International Freight Forwarding Department <=
- 2024-11-11 Warszawa => Sales Development Representative (in German) <=
- 2024-11-11 Marsz niepodległości
- 2024-11-08 Belka
- 2024-11-09 pierdolec na punkcie psa