wenn's jmd in Python haben will, zeigt auch benötigten Speicherplatz mit und ohne Huffman-Kodierung an: def huffman(message): #initilialise stack stack = sorted([Node(val=a,k=b) for a,b in Counter(message).items()],key=lambda x:x.k,reverse=True) #create huffman tree while len(stack)>1: x=stack.pop() y=stack.pop() stack.append(Node(val=None,k=x.k+y.k,left=x,right=y)) stack.sort(key=lambda x:x.k,reverse=True) #turn tree into translation dict translator = dict() def convert(node,s=''): if node.left: convert(node.left,s+'0') if node.right: convert(node.right,s+'1') elif node.val: translator[node.val]=s convert(stack[0]) result=''.join(translator[char] for char in message) print(f'') print(f'') print(f'') return result
@Ufuk6464 жыл бұрын
Wie leicht es ist durch gute Erläuterung, bin echt begeistert
@Florian.Dalwigk4 жыл бұрын
Danke dir :)
@dominichauff54703 жыл бұрын
Genau was ich gebraucht habe. Nicht mehr und nicht weniger. Daumen hoch
@Florian.Dalwigk3 жыл бұрын
Top, das freut mich :)
@JustAnAliasBro Жыл бұрын
Hast mir gerade so den Arsch gerettet. Hab Prüfung morgen und hatte keine Ahnung. Erklärungen sind Präzise , Animationen sehr gut, Sehr gute Sprechstimme und alles in allem 1+ für das vid. Danke
@Florian.Dalwigk Жыл бұрын
Vielen Dank :) Viel Erfolg für die Prüfung morgen!
@janniswildermuth149910 ай бұрын
Super erklärt. Das die intuitive Variante mit verglichen wurde finde ich auch toll, sonst wäre die erste Frage bei vielen natürlich direkt, ob das denn überhaupt was bringt.
@anna-lenaklaas774 жыл бұрын
Sehr gut erklãrt. Versteht sogar ein Boomer
@Florian.Dalwigk4 жыл бұрын
Vielen Dank Anna :)
@rayvvenn3 жыл бұрын
hahaha
@louispeter6138 Жыл бұрын
das Video ist voll gut!! Simple und einfach erklärt, sodass man es auch wirklich verstehen kann :) danke dir
@Florian.Dalwigk Жыл бұрын
Gerne :)
@anonym97133 жыл бұрын
Hätte man auch SS und PP als Block nehmen können? Die kommen ja immer nur zusammen vor. So wäre meine Codewort nur 14 Zeichen lang. Oder lässt sich das nur mit gleichlangen Blöcke machen?
@BA-pq1vr2 жыл бұрын
Eine Frage: Hätte man auch die Buchstaben I und S verbinden können? Also das dann der Baum symmetrisch ist…
@denizonat46513 жыл бұрын
was kurzes dazu gelernt. Kannst du das programmieren in c und den code erklären?
@Garkolym9 ай бұрын
Danke für die Erklärung
@Florian.Dalwigk9 ай бұрын
Sehr gerne und ein frohes neues Jahr 2024 :)
@Garkolym9 ай бұрын
@@Florian.Dalwigk dir auch frohes neues
@IA7mD11 ай бұрын
VOICE CRACK sein vater, aber vielen dank fürs video
@Florian.Dalwigk10 ай бұрын
Lol, gerne ;)
@giama43123 жыл бұрын
Super video. Eine Frage hätte ich allerdings noch. Wieso entscheiden wir uns, dass die 1 auf der rechten Seite im Baum steht und nicht auf der linken?
@yrrebwarts933 жыл бұрын
Das interessiert mich auch sehr
@1aboPLZ3 жыл бұрын
das ist egal jedoch muss das während des Kodierens einheitlich sein
@matthiasmeyer13 жыл бұрын
Danke!! Das ist echt gut erklärt
@Florian.Dalwigk3 жыл бұрын
Das freut mich 🙂
@TheCelebreties4 жыл бұрын
Vielen Dank! Mehr kann man dazu nicht sagen :D
@Florian.Dalwigk3 жыл бұрын
Danke :)
@sorenheege23894 жыл бұрын
Super Erklärvideo!
@Florian.Dalwigk4 жыл бұрын
Danke :)
@oida100003 жыл бұрын
Sollte man den Hufman-Code über den gesamten Text oder über einzelne Wörter machen? Wieviel Platz nimmt der Baum selbst weg? Was ist die Verarbeitungslatency beim Dekodieren?
@1aboPLZ3 жыл бұрын
1. es macht mehr Sinn den ganzen Text zu kodieren weil der je länger der Text desto geringer der Informationsgehalt pro Zeichen ist 2. kommt auch wieder auf den informationsgehalt an. Ist dieser sehr gering nimmt die Tabelle/der Baum sehr wenig Platz weg im Verhältnis zum Code 3. keine Ahnung was du meinst bin Schüler. der Algorithmus hat glaub ich eine lineare Laufzeit
@cntrix20473 жыл бұрын
mit welchem programm hast du das video erstellt?
@jensharbers56203 жыл бұрын
Super video, muss anmerken, das ich im Studium leider zu spät den Sinn von manchen Datenstrukturen und anderen gesehen habe
@Florian.Dalwigk3 жыл бұрын
Besser spät als nie ;)
@MiauRizius3 жыл бұрын
Cooles und vorallem interessantes Video.
@Florian.Dalwigk3 жыл бұрын
Vielen Dank 🙂🙃
@MiauRizius3 жыл бұрын
@@Florian.Dalwigk Aber wie bekommt man wieder die Buchstaben raus? Wenn deine Binärzahlen für Buchstaben mal so und mal so lange sind?
@Florian.Dalwigk3 жыл бұрын
Der Baum wird mit übertragen. Daraus kann man die Nachricht wieder herstellen.
@MiauRizius3 жыл бұрын
@@Florian.Dalwigk Okay
@paulr51113 жыл бұрын
super erklärt tolles Video!
@Florian.Dalwigk3 жыл бұрын
Danke dir 😊
@tim2653 жыл бұрын
Wieso wird der Baum nicht so aufgebaut, dass er einem AVL Baum ähnelt? Also in deinem Beispiel I und S unter der Wurzel stehen und dann M und P jeweils z.B. beide unter I? Dann wären die Binärcodes auch entsprechend kürzer?
@tristan77153 жыл бұрын
Habe ich mich auch gefragt
@1aboPLZ3 жыл бұрын
dann wäre das nicht prefixfrei
@33339273 жыл бұрын
Dafür muss aber das Wort bekannt sein. Denn wenn man nun ein Wort nur mit den Buchstaben MISP (z.B. Missisippi) so codiert, funktioniert der Code nicht mehr, wenn man das Wort "Illinois"auslesen will. Für jedes Wort mit anderen Buchstaben, braucht man also einen Schlüsselcode, der einem zuvor sagt, welche Buchstaben wie oft in dem Wort vorkommen.
@1aboPLZ3 жыл бұрын
ich verstehe nicht ganz was du meinst aber falls es dir nicht klar ist: die Tabelle/der Baum muss mit übertragen werden
@33339273 жыл бұрын
@@1aboPLZ Also man muss dann für jedes Wort mitübertragen, wie der jeweilige vorkommende Buchstabe kodiert wurde? Bei Missisippi hätte man dann mit dem Huffmancode 21 Bits + 4x8 Bits für ASCII, also in der Summe 53 Bits anstatt 88 Bits? Beispiel: M: 01001101 -> 100 I: 01001001 -> 0 S: 01010011 -> 11 P: 01010000 -> 101 Also zuerst muss man die Zuweisung machen, dann das Wort im zugewiesenen Binärcode: 01001101100 | 010010010 | 0101001111 | 01010000101 || 100011110111101011010 Das wären dann 62 Bits, anstatt 88 Bits. Und das muss man dann für jedes einzelne Wort immer wieder neu machen, weil ja jedes Wort unterschiedlich ist. Bei Wörtern, die keine sich wiederholenden Buchstaben haben, hätte man dann sogar einen längeren Code als mit der ASCII Tabelle. Mir ergibt sich der Sinn davon nicht.
@1aboPLZ3 жыл бұрын
wie das kodiert wird muss einmal für die Nachricht übertragen werden. Man kann aber auch sagen man einigt sich auf durchschnittliche Wahrscheinlichkeiten die die Buchstaben in der entsprechenden Sprache haben. Das heißt für Nachrichten mit hoher Informationsdichte macht keinen Sinn alle Kodierungen zu übertragen
@anonymunterwegs30472 жыл бұрын
Ganz klasse!
@Florian.Dalwigk2 жыл бұрын
:)
@anonymunterwegs30472 жыл бұрын
@@Florian.Dalwigk 😘❤
@jemaripano80783 жыл бұрын
Sehr gutes video
@Florian.Dalwigk3 жыл бұрын
Danke
@luisa_laurent Жыл бұрын
5:15 Hallo, ich bin Marcel Davis
@Florian.Dalwigk Жыл бұрын
;)
@_inetuser4 ай бұрын
🫱🏿🫲🏼
@whogotpwned3 жыл бұрын
Sehr gut erklärt. Deine Darstellungen und Animationen sind echt gut. Top.
@Florian.Dalwigk3 жыл бұрын
Vielen Dank für dein Feedback, das freut mich sehr :)
@inf0rmix2011 Жыл бұрын
Find ich auch ! vielen dank dafür!!!!
@dragonminja2463 жыл бұрын
Muss schon sagen, das war echt gut :D
@Florian.Dalwigk3 жыл бұрын
Danke 😊
@MrRicsto3 жыл бұрын
Servus, danke für das Video! Wäre es auch richtig wenn man in der Darstellung des Baumes praktisch das I auf der rechten Seite stehen hätte? Also sodass man für I auf 1 kommt und für zb S auf 01 statt 11? Danke im Voraus^^
@Florian.Dalwigk3 жыл бұрын
Ja, würde auch gehen.
@MrRicsto3 жыл бұрын
@@Florian.Dalwigk Alles klar, vielen dank :)
@Florian.Dalwigk3 жыл бұрын
Gerne!
@toniii11052 жыл бұрын
Sehr gut erklärt mit einer echt angenehmen Stimme. Danke!
@Florian.Dalwigk2 жыл бұрын
Gerne und vielen Dank für dein Feedback :)
@nterior92453 жыл бұрын
Super erklärt. Gerne mehr solcher Videos
@claudiomondillo58024 жыл бұрын
Danke für das Video. Ich habe dazu noch eine Frage: Beim ersten Wurzelknoten(MP) wird das S auf der rechten Seite geschrieben. Beim Wurzelknoten MPS wird das I an der linken Seite geschrieben. Warum? Wird immer der letzte Buchstabe auf die linke Seite geschrieben oder wie entscheide ich ob ich links oder rechts vom Wurzelknoten den nächsten Buchstaben hinschreibe?
@whogotpwned3 жыл бұрын
Du zählst die Summe der Erscheinungen über das jeweilige Wort. Kleiner als der entsprechende Knoten impliziert Links und größer wiederum Rechts.
@bered48942 жыл бұрын
4:18 der geringste wenn man M und P nicht einzeln betrachtet richtig?
@Florian.Dalwigk2 жыл бұрын
Genau
@LegendRuffy3 жыл бұрын
an sich ist alles genau so wie in meiner vorlesung außer dass du die absolute häufigkeit eines buchstabens nimmst statt die realtive häufigkeit... was ist denn nun richtig? hmm
@Florian.Dalwigk3 жыл бұрын
Geht wohl beides
@Johannes-vb2tg Жыл бұрын
2:13 dieser Voicecrack haha wollte doch nur für Informatik lernen haha. Starkes Video sonst
@Florian.Dalwigk Жыл бұрын
...
@ed1849x Жыл бұрын
top
@Florian.Dalwigk Жыл бұрын
:)
@bilalbar83222 жыл бұрын
🙏
@Florian.Dalwigk2 жыл бұрын
👍
@darioackermann23982 жыл бұрын
Ich habe den Eindruck, dass der Algorithmus, der hier erklärt wird, z.B. mit 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbbbbbbbbbbccccccccccccddddddddddddddddeeeeeeeeefffff' nicht funktioniert... Man müsste doch zunächst immer Paare bilden?
@kristofferlillje25483 жыл бұрын
Übermorgen steht eine Klausur in Informatik an. Jetzt wird gehusslet.
@michaelmendez14513 жыл бұрын
Yo its you again. Lol me too.
@kristofferlillje25483 жыл бұрын
@@michaelmendez1451 Love you
@Florian.Dalwigk3 жыл бұрын
Viel Erfolg für die Prüfung :)
@RiesLP Жыл бұрын
Frag mich grad nur wie man das dann wieder decodiert 🤔
Dazu werde ich in absehbarer Zeit kein Video erstellen.
@1aboPLZ3 жыл бұрын
@@Florian.Dalwigk schade
@testaccount83283 жыл бұрын
Wie wird der Text decodiert?
@1aboPLZ3 жыл бұрын
Mithilfe der Tabelle/des Baumes
@minoukruger79569 ай бұрын
Hi du erklärst das immer super ❤, kannst du ein Video bitte machen mit der LZ77 Compression , dies kommt häufig in Klausuren vor und es gibt nicht so gute erklär Videos dazu auf KZbin 🫣
@Florian.Dalwigk9 ай бұрын
Danke dir. Das Thema ist aktuell nicht geplant. Ich wünsche dir trotzdem viel Erfolg bei der Prüfungsvorbereitung!
@nadjas42822 жыл бұрын
wow, da klickt man auf einen der YT Links in den Übungsfolien und landet hier 😀👍
@Florian.Dalwigk2 жыл бұрын
Richtig cool! Darf ich fragen, welche Uni?
@nadjas42822 жыл бұрын
@@Florian.Dalwigk THM Gießen
@Florian.Dalwigk2 жыл бұрын
Ach, wie cool 😎 Ich habe da mal ganz in der Nähe gewohnt ;)
@Florian.Dalwigk2 жыл бұрын
Darf ich fragen, wie der Dozent heißt?
@nadjas42822 жыл бұрын
@@Florian.Dalwigk cool cool auch ein Hesse 😀 Bienhaus ist der Gute 🐝 Grundlagenmodul muss ich machen weil an voriger Uni net so gab
@murxibald2 жыл бұрын
Rechnet sich das? Die Kodierungstabelle muss ja schließlich auch übertragen werden, was die Redundanz wieder erhöht. 😅
@Florian.Dalwigk2 жыл бұрын
Kommt natürlich auf das Problem an.
@flocco25424 жыл бұрын
Zur Dekodierung muss aber der Baum mit übertragen werden, oder? Dieser beansprucht ja ebenfalls wieder Speicher.
@Florian.Dalwigk4 жыл бұрын
Das wurde in den Kommentaren schon beantwortet
@baraka6292 жыл бұрын
Wir könnten noch eine größere Ersparniss erzielen wenn wir ganze Bigramme codieren würden ( z.b. das Bigramm "MI")
@Florian.Dalwigk2 жыл бұрын
Kann man auch machen, ja.
@hakim26654 жыл бұрын
Danke für das Video schreibe morgen meine Arbeit und habe durch das Video viel gelernt.
@Florian.Dalwigk4 жыл бұрын
Super und viel Erfolg!
@noelluthi60403 жыл бұрын
Wie ist ein Leerschlag zu handhaben?
@1aboPLZ3 жыл бұрын
der Computer hat ja nur die Zahl vom Buchstaben im Speicher. Beim Aufschreiben als Grafik kann man dieses simbol auf der Leertaste benutzen sieht ja ungefahr so aus l___l
@Murmel_Bahn2 жыл бұрын
Schöne Erklärung
@Florian.Dalwigk2 жыл бұрын
Danke dir 🙃
@xXxLegolas007xXx4 жыл бұрын
Warum hast du bei IMPS das I links von MPS stehen und nicht rechts ?
@Florian.Dalwigk4 жыл бұрын
Weil ich von links nach rechts sortiere und l kommt im Alphabet vor m.
@paulkohler89193 жыл бұрын
super erklärt wie immer
@Florian.Dalwigk3 жыл бұрын
Danke dir!
@oskarkoelbel3 жыл бұрын
Hey, eine Frage hab ich dazu noch. Wozu schreibt man die Summen der Buchstaben dazu, die zusammengefasst werden? Haben die irgendeine Bedeutung?
@Florian.Dalwigk3 жыл бұрын
Wo genau meinst du?
@oskarkoelbel3 жыл бұрын
@@Florian.Dalwigk Ich meine die, die direkt unter den eingekreisten Buchstaben stehen, wenn man den Baum zeichnet. Das sind die Summen der zusammengefügten Buchstaben. Bei 4:14 wäre das die 3 unter MP
@Florian.Dalwigk3 жыл бұрын
Danach richtet sich die Auswahl der Buchstaben.
@oskarkoelbel3 жыл бұрын
@@Florian.Dalwigk Ok, vielen lieben Dank für deine Hilfe, finde deine Videos toll.
@Florian.Dalwigk3 жыл бұрын
Gerne :)
@lopix3744 жыл бұрын
Klasse Video, danke danke!
@Florian.Dalwigk4 жыл бұрын
Gerne :)
@matteiooo4 жыл бұрын
Sehr starkes Video 👍
@Florian.Dalwigk4 жыл бұрын
Merci :) Ich freue mich, dass es dir weitergeholfen hat!
@matteiooo4 жыл бұрын
@@Florian.Dalwigk Ich habe letztens von der JPEG-Kompression erfahren. VIlleicht ist es ja genau so interessant für dich wie für mich und du behandelst es in einem Video? Selbstverständlich habe ich dich abonniert. Liebe Grüße PS: Ein sehr hilfreiches Video darüber: kzbin.info/www/bejne/bZfLeYSdqpeCmbs
@Florian.Dalwigk4 жыл бұрын
Du wirst lachen ... zu dem Thema wollte ich ursprünglich meine Bachelorarbeit schreiben ;) Allerdings habe ich mich dann doch für etwas aus dem IT-Security-Bereich entschieden. Ich werde mal schauen, dass ich dazu ein Video mache. Momentan sind aber noch andere in der Pipe. Weiterhin viel Spaß auf meinem Kanal und ein großes Dankeschön für dein Feedback :)
@MaxMorsch4 жыл бұрын
Sehr gut erklärt. Eine Sache ist mir aber noch unklar: Wie wird der Baum übergeben oder wo und wie wird er gespeichert? Sind das in Summe dann bei kleinen Datenmengen nicht u.U. sogar mehr Daten?
@friendlyinformatics60264 жыл бұрын
Zur Datenmenge: Da dein Kommunikationspartner nur ein mal den Baum zum decodieren braucht, musst du nicht jedes mal die Informationen über den Baum mit senden (erst wenn sich die Struktur des Baumes ändert).
@Florian.Dalwigk3 жыл бұрын
Mein Vorredner hat bereits alles gesagt :)
@1aboPLZ3 жыл бұрын
@@friendlyinformatics6026 und bei dem text "TheQuickBrownFoxJumpsOverTheLazyDog"?
@1aboPLZ3 жыл бұрын
weil, dass der Baum nur einmal übertragen werden muss ist klar aber bei Texten mit hohem Informationsgehalt pro Zeichen würde das doch mehr Platz verbrauchen oder irre ich mich? Eine Lösung wäre ja vielleicht eine Tabelle für Englische/Deutsche durchschnittliche Häufigkeiten zu nutzen
@friendlyinformatics60263 жыл бұрын
@@1aboPLZ Wenn du Platz als Länge des Wortes definierst ja; Aber ein Buchstabe muss ja trotzdem ins Binäre irgendwie für die Übertragung konvertiert werden. Um die Konvertierung zu optimieren kann man dann einen Huffman Baum verwenden. (Falls ich deine Frage richtig verstanden habe)
@martinschwarz3626 Жыл бұрын
Wie kommt man auf die 21 Bit.
@Florian.Dalwigk Жыл бұрын
Wo genau?
@martinschwarz3626 Жыл бұрын
@@Florian.Dalwigk Bei 5:47
@Florian.Dalwigk Жыл бұрын
Siehe Unwandlung mithilfe der Tabelle, ca. 20 Sekunden vor deinem Timestamp.
@martinschwarz3626 Жыл бұрын
@@Florian.Dalwigk Sorry, ich verstehe es eeinfach nicht. Kannst du mir bitte in ein paar Sätzen erklären, wie man von den 88 Bits auf 21 Bits kommt? Vielen Dank, für die Antwort im Voraus!
@martinschwarz3626 Жыл бұрын
Weil ich finde es nicht im Video
@publicvoid14712 жыл бұрын
ASCII verwendet nur 7 bits pro zeichen! UTF-8 braucht 8 bits