-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.
atman.pl!.POSTED!not-for-mail
From: bartekltg <b...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: Liczby całkowite zmiennej długości
Date: Wed, 30 Apr 2014 13:22:14 +0200
Organization: ATMAN - ATM S.A.
Lines: 69
Message-ID: <ljqmd6$30f$1@node2.news.atman.pl>
References: <ljou5f$uob$1@node1.news.atman.pl> <ljp492$5ug$1@node1.news.atman.pl>
<ljq5bv$5eb$1@node1.news.atman.pl>
NNTP-Posting-Host: 89-73-81-145.dynamic.chello.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node2.news.atman.pl 1398856934 3087 89.73.81.145 (30 Apr 2014 11:22:14 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Wed, 30 Apr 2014 11:22:14 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101
Thunderbird/24.4.0
In-Reply-To: <ljq5bv$5eb$1@node1.news.atman.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:205553
[ ukryj 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
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- 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
Najnowsze wątki
- 2024-12-20 Precedensy politycznie motywowanego nie wydawania w UE
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Obrońcy
- 2024-12-20 Gdańsk => Inżynier bezpieczeństwa aplikacji <=
- 2024-12-20 czyste powietrze
- 2024-12-20 Katowice => Analyst in the Trade Development department (experience wi
- 2024-12-20 Opole => Inżynier Serwisu Sprzętu Medycznego <=
- 2024-12-20 Katowice => Regionalny Kierownik Sprzedaży (OZE) <=
- 2024-12-20 Rzeszów => International Freight Forwarder <=
- 2024-12-20 Katowice => Key Account Manager (ERP) <=
- 2024-12-20 Ekstradycja
- 2024-12-20 Mikroskop 3D
- 2024-12-20 Warszawa => Spedytor Międzynarodowy <=
- 2024-12-20 Warszawa => Analityk w dziale Trade Development (doświadczenie z Powe