Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Theoretische Informatik (http://www.informatikerboard.de/board/board.php?boardid=5)
--- Frage zur Arithmetischen Kodierung (http://www.informatikerboard.de/board/thread.php?threadid=2989)


Geschrieben von igor789 am 30.04.2016 um 17:34:

  Frage zur Arithmetischen Kodierung

Hallo,

ich habe eine Frage zur arithmetischen Codierung:

Man erhält als Resultat der arithmetischen Codierung ja eine Dezimalzahl (meistens im Intervall [0-1) ). Diese Dezimalzahl muss man ja mit möglichst wenig Bit darstellen können.
Frage: Wie findet man die Binärzahl aus dem Intervall, die diesem Kriterium entspricht?
Und wie verhält sich das bei periodischen Binärzahlen? Zahlr man dann nur die Bits einer Periode?

Würde mich über eine Antwort sehr freuen smile

Schönen Samstag noch Wink



Geschrieben von eulerscheZahl am 01.05.2016 um 06:51:

 

Zitat:
Man erhält als Resultat der arithmetischen Codierung ja eine Dezimalzahl

Du erhältst ein Intervall. Innerhalb des Intervalls kannst du dir eine Zahl aussuchen. Wenn du dich nicht komplett dumm anstellst, ist die Zahl dann auch nicht periodisch.

Beispiel: finde eine Binärzahl in Intervall [0.28, 0.3)
Ich würde so vorgehen: beide Zahlen parallel ins Dualsystem umrechnen:
0.28 = 0.0...(2)
0.30 = 0.0...(2)

0.28 = 0.01...(2)
0.30 = 0.01...(2)

0.28 = 0.010...(2)
0.30 = 0.010...(2)

0.28 = 0.0100...(2)
0.30 = 0.0100...(2)

0.28 = 0.01000...(2)
0.30 = 0.01001...(2)

Hier unterscheiden sich die Zahlen. Also liegt 0.01001(2) irgendwo zwischen 0.28 und 0.3. Es entspricht der Dezimalzahl 0.28125.



Geschrieben von igor789 am 01.05.2016 um 20:03:

 

Ah, okay das macht Sinn. Danke smile Daumen hoch Linux


Forensoftware: Burning Board, entwickelt von WoltLab GmbH