Entwickeln von einem "kompakten Huffmann Code"

Gast #6418170
Hallo zusammen

Kann Jemand mir helfen beim Entwickeln von einem "kompakten Huffmann 
Code" über {0,1}" ?

Hier ist offenbar : Y = 0,1 und "C" ist gesuch, wobei X = (x1, x2, x3, 
x4, x5, x6) und P=(1/3, 1/4, 1/6, 1/12, 1/12, 1/12). Leider kann ich im 
Internet keine klare bzw. einfache Methode finden um den Code zu 
entwickeln!

Danke im Voraus
Gast #6418238
Vielen Dank für die Antwort. Ich verwende diese Methode. Ich stecke 
bleiben nachdem ich x5 und x6 addiere und zu 0.16 komme. Soll ich diese 
0.16 zu X4 oder X3 addieren ?

Danke nochmals
Angehängte Dateien:
Gast #6418491
martin1561 schrieb:

> Vielen Dank für die Antwort. Ich verwende diese
> Methode.

Nicht wirklich :)


> Ich stecke bleiben nachdem ich x5 und x6 addiere
> und zu 0.16 komme. Soll ich diese 0.16 zu X4 oder
> X3 addieren ?

Hmm. Also ich kenne das so:

1. "Erstelle eine Liste mit allen Symbolen und ihren
   relativen Häufigkeiten!"

Die Liste ist m.o.w. vorgegeben; ich schreibe sie nochmal
hin und verwende aus Gründen der Schreibfaulheit die
Symbole A...F statt x1...x6. Die gegebene Liste lautet:
1
A     1/3   0.333 
2
B     1/4   0.250 
3
C     1/6   0.166 
4
D     1/12  0.083 
5
E     1/12  0.083 
6
F     1/12  0.083


2. "Sortiere die Liste nach fallender Häufigkeit!"

Das ist zufällig schon der Fall.


3. "Fasse die letzten beiden Symbole der Liste (d.h.
   die beiden Symbole mit der geringsten Häufigkeit)
   zu einem Ersatzsymbol zusammen!"

Die beiden letzten Symbole der Liste sind E und F;
diese werden zum Ersatzsymbol EF zusammengefasst. Die
Häufigkeiten werden natürlich addiert.
Die Liste sieht jetzt so aus:
1
A     1/3   0.333 
2
B     1/4   0.250 
3
C     1/6   0.166 
4
D     1/12  0.083 
5

6
EF    1/6   0.166

4. "Füge das neu entstandene Ersatzsymbol so in die
   Liste ein, dass die Sortierung wieder korrekt ist!"

EF am Ende der Liste ist offensichtlich falsch, weil
D eine noch geringere Wahrscheinlichkeit als EF hat.
Es zeigt sich aber das Kuriosum, dass man EF vor oder
nach C in die Liste schreiben könnte, denn die
Häufigkeiten von EF und C sind identisch.
Der Witz ist: Das ist egal; es entstehend zwar unter-
schiedliche Codes, aber deren mittlere Wortlänge ist
gleich.
Wir entscheiden uns willkürlich, EF nach C einzuordnen.
Die neue Liste lautet somit:
1
A     1/3   0.333 
2
B     1/4   0.250 
3
C     1/6   0.166 
4
EF    1/6   0.166 
5
D     1/12  0.083

5. "Falls noch mehr als zwei (Ersatz-)Symbole in der Liste
   stehen, setze bei 3. fort; andernfalls gehe zu 6."

Es entstehen schrittweise die Listen
1
A     1/3   0.333 
2
B     1/4   0.250 
3
DEF   1/4   0.250 
4
C     1/6   0.166
1
CDEF  5/12  0.416 
2
A     1/3   0.333 
3
B     1/4   0.250
1
CDEF  5/12  0.416 
2
AB    7/12  0.583

6. "Vergib für die beiden (Ersatz-)Symbole in der Liste
   willkürlich die Codeworte 0 und 1!"

Die Liste sieht jetzt so aus:
1
CDEF  5/12  0.416    "0" 
2
AB    7/12  0.583    "1"

7. "Zerlege das zuletzt entstandene Ersatzsymbol der Liste
   wieder in seine Bestandteile und hänge 0 bzw. 1 an die
   zugeordneten Codeworte an!"

Das zuletzt entstandene Ersatzsymbol der Tabelle ist AB;
wir erhalten jetzt wieder folgende Liste:
1
CDEF  5/12  0.416    "0" 
2
A     1/3   0.333    "10" 
3
B     1/4   0.250    "11"

8. "Wiederhole 7. so lange, bis keine Ersatzsymbole mehr
   in der Liste stehen!"

Man erhält nacheinander die Listen:
1
A     1/3   0.333    "10" 
2
B     1/4   0.250    "11" 
3
DEF   1/4   0.250    "01" 
4
C     1/6   0.166    "00"
1
A     1/3   0.333    "10" 
2
B     1/4   0.250    "11" 
3
C     1/6   0.166    "00" 
4
EF    1/6   0.166    "010" 
5
D     1/12  0.083    "011"
1
A     1/3   0.333    "10" 
2
B     1/4   0.250    "11" 
3
C     1/6   0.166    "00" 
4
D     1/12  0.083    "011" 
5
E     1/12  0.083    "0100" 
6
F     1/12  0.083    "0101"

Keine Gewähr für Korrektheit.
HTH
Gast #6418601
Egon D. schrieb:

> Komische Erklärungen.
> Wenn ich nicht schon wüsste, wie's geht, wüsste ich
> nach dem Lesen immer noch nicht, wie's geht.

Dann hast du ein echtes Problem. Das Prinzip ist klar und einfach 
dargestellt und ziemlich trivial.

Alles, woran man noch scheitern kann, ist das Verständnis des Prinzips, 
und dessen praktischer Implemetierung.

Beides ist allein dein Ding. Die praktische Implementierung erfordert 
einzig das Verständnis des Prinzips und grundlegende 
Programmierfähigkeiten.

Was also ist dein Problem? Vermutlich nur: keine passende Wichsvorlage 
für C&P gefunden...
Gast #6418618
Erwin D. schrieb:

> Bist du mal wieder auf deinem Niveau angelangt?

Wenn du damit meinst, dass es meinem Niveau entspricht, dieses 
unsägliche C&P-Programmierertum anzuprangern, dann ja: da bin ich wohl 
wieder angelangt!

Wäre mir selber auch lieber, wenn das seltener passieren würde. Nur 
leider wächst halt die Herde der C&P-Idioten wohl unaufhörlich...
Gast #6418738
c-hater schrieb:
> Egon D. schrieb:
>
>> Komische Erklärungen.
>> Wenn ich nicht schon wüsste, wie's geht, wüsste ich
>> nach dem Lesen immer noch nicht, wie's geht.
>
> Dann hast du ein echtes Problem. Das Prinzip ist klar und einfach
> dargestellt und ziemlich trivial.
>
> Alles, woran man noch scheitern kann, ist das Verständnis des Prinzips,
> und dessen praktischer Implemetierung.
>
> Beides ist allein dein Ding. Die praktische Implementierung erfordert
> einzig das Verständnis des Prinzips und grundlegende
> Programmierfähigkeiten.
>
> Was also ist dein Problem? Vermutlich nur: keine passende Wichsvorlage
> für C&P gefunden...

Sorry hater, du machst deinem Namen alle Ehre - nur dass du dein 
Hassfeld willkürlich erweiterst.
Egon hat das m.E. wunderbar dargestellt und er hat eben kein Problem, 
sondern hat das einfach nochmal etwas ausführlicher erläutert.
Was ist hingegen dein Problem?
Dass du nicht so schön erklären, sondern nur so schön stänkern kannst?
O.k. das ist auch eine Kunst!

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 6 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.