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
Ist auf der Wikipedia gut erklärt: https://de.wikipedia.org/wiki/Huffman-Kodierung https://en.wikipedia.org/wiki/Huffman_coding
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
Folge den schwarzen Linien :-) Welche Lienie :D kannst du bitte ein kleines bisschen ausführlicher erklären? Ist es auch richtig so weit? Danke
Ich weiß , dass es einen Fehler irgendwo gibt, aber ich weiß nicht ab welchem Schritt!
Martin schrieb: > Ist auf der Wikipedia gut erklärt: > > https://de.wikipedia.org/wiki/Huffman-Kodierung > > https://en.wikipedia.org/wiki/Huffman_coding Komische Erklärungen. Wenn ich nicht schon wüsste, wie's geht, wüsste ich nach dem Lesen immer noch nicht, wie's geht.
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
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...
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...
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!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.