Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Huffmann Codierung

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 08.12.2009, 22:49    Titel: Huffmann Codierung Antworten mit Zitat

Kennt jemand diese Kodierungsart?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 08.12.2009, 23:16    Titel: Antworten mit Zitat

Hallo,

ja, die Huffman-Codierung ist relativ bekannt und findet soweit ich weiß unter anderem bei JPEG-Dateien und dem Faxversand Einsatz. Wenn du nach Huffman+Code o.ä. googelst, findest du etliche passende Treffer.
Auch für QBasic gibt es Demo-Snippets.
Ansonsten habe ich darüber einen Artikel im Buch "Algorithmen in Java" von Hans Werner Lang. Obwohl sich der Autor auf Java bezieht, wird der Algorithmus darin programmiersprachenunabhängig erklärt.

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 08.12.2009, 23:25    Titel: Antworten mit Zitat

Huffmann ist ja mal so abgetreten, dass du mit Google soviel deutschsprachiges dazu findest, dass die Frage schon fast unverschämt ist.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 08.12.2009, 23:34    Titel: Antworten mit Zitat

Naja, ich finde, dass es mal hier mal dort etwas anderst dokumentiert ist und das macht mich durcheinander. Ich benötige einen guten Link grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 08.12.2009, 23:50    Titel: Antworten mit Zitat

guter link
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
E-P-S



Anmeldungsdatum: 16.09.2004
Beiträge: 500
Wohnort: Neuruppin

BeitragVerfasst am: 09.12.2009, 13:49    Titel: Antworten mit Zitat

auch ein guter Link: http://www.east-power-soft.de/index.php?menu=quickbasic_quickbasic_tuts_zip
_________________
Man kann sich öfter als zweimal im Leben halb tot lachen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 10.12.2009, 18:10    Titel: Antworten mit Zitat

Ich kappiere es nicht, kappiert es jemand von euch?

ich weiss nicht, wie man solch einen Baum erstellt
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 10.12.2009, 18:31    Titel: Antworten mit Zitat

Ich kapppppiere nicht, warum du nicht schreiben kannst.

Huffman ist sowas von einfach, dass es schon fast in einem Intelligenztest vorkommen könnte. Wenn jemand das nicht versteht ist er meistens selbst Schuld.

http://www.iti.fh-flensburg.de/lang/algorithmen/code/huffman/huffman.htm


Zuletzt bearbeitet von 28398 am 12.12.2009, 18:11, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 10.12.2009, 22:12    Titel: Antworten mit Zitat

Ruhig Blut.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 12.12.2009, 01:40    Titel: Antworten mit Zitat

Kennst mich ja...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 12.12.2009, 12:35    Titel: Antworten mit Zitat

28398 hat Folgendes geschrieben:
Ich kapppppiere nicht warum du nicht schreiben kannst.

Huffman ist sowas von einfach[...]. Wenn jemand das nicht versteht ist er meistens selbst Schuld.


Und die Aussage rechtfertigst du mit:
28398 hat Folgendes geschrieben:
Kennst mich ja...


Meine fresse... ist dir eigentlich noch irgentwie zu helfen? Hier hat ein (ganz normaler) Mensch ein Problem und bittet um Hilfe und erklärung.... und was fällt dir dazu ein? Klar, Herr Ober1337 kann ja alles - und wer nicht auf seinem Niveau ist, der ist selber schuld und Dumm. Ich versteh nicht was in deinem Kopf vorgeht... was soll dieser Dreck?

Wenn du es kannst: ERKLÄR ES IHM!
Ansonsten: im forum von golem.de fällst du garnicht weiter auf...
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 12.12.2009, 14:14    Titel: Antworten mit Zitat

Wiegesagt habe ich mir die Websiten zisch tausend mal durchgelesen, aber ich verstehe halt nicht, wie man den Huffman-Baum aufbaut.

Mir ist schon folgendes klar:

Wenn ich den Text habe : "MORGENESSEN".

Der Text hat = 11 ASCII Zeichen.

Insgesamt kommen folgende Buchstaben drinne vor:

M = 1 * = P1
O = 1 * = P2
R = 1 * = P3
G = 1 * = P4
E = 3 * = P5
N = 2 * = P6
S = 2 * = P7

(4 * 1)+3+2+2 = 11 Zeichen


Nun ist es folgendermasen:

P1 / 11 = 0,090
P2 /11 = 0,090
P3 /11 = 0,090
P4 /11 = 0,090
P5 /11 = 0,272
P6 /11 = 0,181
P7 / 11 = 0,181
= 1

Bis jetzt ist das Programmiertechnische ja einfach.
und wie erstelle ich jetzt den Baum?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 12.12.2009, 14:35    Titel: Antworten mit Zitat

jetzt nimmst du immer die zwei niedrigsten werte aus der liste, und ersetzt sie durch einen knoten der den wert der summe der beiden hat, solang bis nurnoch ein einziger knoten übrig ist.
_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Andy19312



Anmeldungsdatum: 22.10.2005
Beiträge: 428

BeitragVerfasst am: 12.12.2009, 14:40    Titel: Antworten mit Zitat

Könntest du es mir mal an dem Beispiel von mir zeigen?
Ich steh irgendwie damit auf dem Schlauch weinen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 12.12.2009, 14:55    Titel: Antworten mit Zitat

28398 hat in seinem zweiten Posting ein schönes Beispiel verlinkt. Viel besser wird man es online wohl nicht erklären können.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MisterD



Anmeldungsdatum: 10.09.2004
Beiträge: 3071
Wohnort: bei Darmstadt

BeitragVerfasst am: 12.12.2009, 15:23    Titel: Antworten mit Zitat

P1 / 11 = 0,090
P2 /11 = 0,090
P3 /11 = 0,090
P4 /11 = 0,090
P5 /11 = 0,272
P6 /11 = 0,181
P7 / 11 = 0,181

-> sortieren nach wahrscheinlichkeiten:

P5: 0,272
P6: 0,181
P7: 0,181
P1: 0,090
P2: 0,090
P3: 0,090
P4: 0,090


-> niedrigsten zwei rausnehmen und durch summen-knoten ersetzen

P5: 0,272
P6: 0,181
P7: 0,181
X1: 0,180
P1: 0,090
P2: 0,090


-> nochmal

P5: 0,272
P6: 0,181
P7: 0,181
X1: 0,180
X2: 0,180


-> nochmal

X3: 0,360
P5: 0,272
P6: 0,181
P7: 0,181


-> nochmal

X4: 0,362
X3: 0,360
P5: 0,272


-> nochmal

X4: 0,362
X5: 0,632


-> nochmal

X6 = 0,994 = 1 (rundungsfehler halt)

und das sind jetzt die verschiedenen ebenen deines Baums.

Code:
P1  P2  P3  P4  P5  P6  P7
 \X2/    \X1/  /     \  /
     \X3/     /       X4
         \ X5/       /
            \      /
              \X6/

_________________
"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
Edsger W. Dijkstra
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 12.12.2009, 16:56    Titel: Antworten mit Zitat

Im Prinzip kannst du auch immer mit den absoluten Häufigkeiten arbeiten, dann treten keine Rundungsfehler auf.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 12.12.2009, 18:12    Titel: Antworten mit Zitat

Damit hat es eine ganze 10. Klasse verstanden. Ohne weitere Erklärungen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz