Wie benötigte Bits berechnen (Huffmankodierung)

bittedanke

Mitglied
Hi, ich soll berechnen, wie viele Bits ich benötigen würde, wenn ich bei einem Text die Huffmankodierung anwenden würde, dabei muss ich laut prof jedoch nicht dei volle Huffmankodierung programmieren, sondern es sei eher simpal, da man nur die benötigten Bits, für einen Tesxt berechnen muss.

Der text sei in einem Chararray gegeben.
Und für den solle man nicht die komplette Huffmankodierung durchführen sondern nur sagen, wie viel Bits man insgesamt benötigen würde und wie viel pro Zeichen, aber wie soll das gehen? Muss man dafür nicht die komplette Huffmankodierung vornehmen?
 
Du baust die Codetabelle auf, dann weißt Du, wie viele Bits Du für welches Zeichen benötigst. Die Häufigkeit der Vorkommen hast Du beim Aufbau der Codetabelle bereits ermittelt, dann musst Du nur noch die gewichtete Summe bilden, um die Gesamtzahl an Bits für den gesamten Text und damit auch pro Zeichen zu erhalten.
 
Du baust die Codetabelle auf, dann weißt Du, wie viele Bits Du für welches Zeichen benötigst. Die Häufigkeit der Vorkommen hast Du beim Aufbau der Codetabelle bereits ermittelt, dann musst Du nur noch die gewichtete Summe bilden, um die Gesamtzahl an Bits für den gesamten Text und damit auch pro Zeichen zu erhalten.
Danke, aber wie mache ich das ohne den Baum zu erstellen? Auf Youtube erstellen alle den Baum und parallel die Tabelle, die Wahrscheinlichkeit, wie oft jeder Buchstabe vorkommt, kann ich berechnen, aber wie komme ich dann von dabund mit fer Anzahl der Buchstaben auf die benötigten Bits?
 
Mit dem Baum alleine hast Du den Text noch nicht kodiert und das sparst Du Dir eben. So trivial, wie das vielleicht auf den ersten Blick erscheint, ist das nicht, da es hier nicht einfach darum geht, ein Zeichen durch eine Zeichenkette zu ersetzen.
 
Und was genau bleibt dann nicht zu machen? Der Baum ist doch shcon der ganze Algorithmus oder nicht?

(Weil der Prof meinte man müsse nicht den kompletten Huffmancode machen)

Anzahl Bits:
1648984811801.png

Du erhältst für jedes Zeichen ein Binärcode und ersetzt das Zeichen im Text mit dem Binärcode am Ende kannst du den Unterschied berechnen.
Beispiel A braucht 1 Byte bei Ascii und 1 Bit laut Codetabelle.
Wenn ich mich recht erinnere, rechnest du am Ende Binärcode grösse mit Huf. / Ohne = Reduktion.
1648984724216.png
Hier musst du nur die Formel umsetzen.
 

Zurück
Oben