Webseiten-Werkzeuge


Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
markow:huffmann [2019/08/25 23:03] – Externe Bearbeitung 127.0.0.1markow:huffmann [2024/03/03 22:36] (aktuell) Tscherter, Vincent
Zeile 1: Zeile 1:
 +====== Huffmann ======
  
 +===== - Variante Kompakt =====
 +<code>
 +/([^β(])(.*?)(β+)\1/$3$1$2/           Gleiche Zeichen summieren   
 +/(β+)(β+)([^β]+)\1([^β]+)/$1$4$1$2$3/ Sortierschritt
 +/^(β+)([^β]+)(β+)([^β]+)/$1$3($2,$4)/ Kleinste Zusammenfassen
 +/^β+([^β]+)$/$1/ !                      Terminierung
 +/(.)/β$1/                             Einfügen von βs
 +</code>
 +
 +===== - Tree Prüfen (separate aufgabe) =====
 +<code>
 +/[a-z]/ϖ/
 +/\(ϖ,ϖ\)/ϖ/
 +/^ϖ$/ok/!
 +/.*/error/!
 +</code>
 +
 +===== - Codes erzeugen =====
 +<code>
 +/\(([a-z01]*),([a-z01]*)\)/π$1τ$2/
 +/π([a-z])([01]*)/$10$2π/
 +/π?τ([a-z])([01]*)/$11$2τ/
 +/τ//
 +</code>
 +
 +===== - Alles zusammen =====
 +<code>
 +/^([a-z])([01]+)([^β]*)χ([^θ]*)\1/$1$2$3χ$4$2/ 
 +/^([a-z])([01]+)// 
 +/^χ//!
 +
 +/\(([a-z01]*),([a-z01]*)\)/π$1τ$2/
 +/π([a-z])([01]*)/$10$2π/
 +/π?τ([a-z])([01]*)/$11$2τ/
 +/τ//
 +
 +/ϒ([a-z])/β$1ϒ/
 +/ϒ\n/χ/
 +/([^β(])(.*?)(β+)\1/$3$1$2/g  
 +/(β+)(β+)([^βχ]+)\1([^βχ]+)/$1$4$1$2$3/g  
 +/^(β+)([^βχ]+)(β+)([^βχ]+)/$1$3($2,$4)/g  
 +/^β*(.*)χ(.*)/$1χ$2θ$1/
 +
 +/.*/ϒ$&\n$&/   
 +</code>
 +
 +====== V2 ======
 +
 +===== - Vorgehensweise =====
 +
 +Eingabe
 +
 +<code>mississippi</code>
 +
 +==== - Initialisierung ====
 +<code>
 +/^[a-zA-Z ]*$/⇒$&\n⊕θ$&\n⇐$&/ !
 +/(\n|.)*/error/!
 +</code>
 +<code>
 +⇒mississippi
 +⊕θmississippi
 +⇐mississippi
 +</code>
 +==== - Codebaum====
 +Der Codebaum soll in folgenden Teilschritten erzeugt werden
 +
 +  ; 0 Ausgangslage  
 +  : ''⊕θmississippi''
 +  ; 1 Zeichen Zählen
 +  : ''⊕mιiιιιιsιιιιpιιθ''
 +  ; 2 Sortieren     
 +  : ''⊕iιιιιsιιιιpιιmιθ''
 +  ; 3 Letzte Zusammenfassen \\ Anschliessend zurück zu Schritt 2 
 +  : ''⊕iιιιιsιιιι(p,m)ιιιθ'' (3)
 +  : ''⊕iιιιι(s,(p,m))ιιιιιιιθ'' (3)
 +  : ''⊕(s,(p,m))ιιιιιιιiιιιιθ'' (2)
 +  : ''⊕(%%(s,(p,m)),i)ιιιιιιιιιιιθ%%'' (3)
 +  ; 4 Bereinigen    
 +  : ''⊕(%%(s,(p,m)),i)%%''
 + 
 +<code>
 +/θ(.)/$1ιθ/
 +/([^ι)])(ι+)(.*)\1(ι+)/$1$2$4$3/g
 +/([^⊕ι]+)(ι+)([^ι]+)\2(ι+)/$3$2$4$1$2/
 +/([^⊕ι]+)(ι+)([^ι]+)(ι+)θ/($1,$3)$2$4θ/
 +/ι+θ//!
 +</code>            
 +
 +Zwischenstand
 +<code>
 +/\((.*),(.*)\)/π$1τ$2/
 +/π([a-zA-Z ])([01]*)/$10$2π/
 +/π?τ([a-zA-Z ])([01]*)/$11$2τ/
 +/τ//
 +/θ(.)/$1ιθ/
 +/([^ι)])(ι+)(.*)\1(ι+)/$1$2$4$3/g
 +/([^⊕ι]+)(ι+)([^ι]+)\2(ι+)/$3$2$4$1$2/
 +/([^⊕ι]+)(ι+)([^ι]+)(ι+)θ/($1,$3)$2$4θ/
 +/ι+θ//!
 +/^[a-zA-Z ]*$/⇒$&\n⊕θ$&\n⇐$&/ 
 +/(\n|.)*/error/!
 +</code>    
 +
 +{{tag>markow huffmann}}