# Hausaufgabe 1 ## Übung 1 ![image_681.png](image_681.png) ### 1a i) - $s_1 = (xy)(xy)(xy)zzyxxxx ∈ Σ^*$ - $s_2 = zzzzyyyx ∈ Σ^*$ ii) - $s_i = \{zy, zzxyy, zzzxxyyy\} ∈ Σ^*$ iii) - $s_{ij} = \{xxyzz, xxxyzzz, xxyzzzzz, xxxyzzzzzz\} ∈ Σ^*$ ### 1b i) - Für eine Zeichenkette der Länge n gibt es genau n + 1 Präfixe, nämlich: - ε (die leere Zeichenkette) - s[0] - s[0..1] - s[0..2] - ... - s[0..n-1] (die vollständige Zeichenkette) - Da |s| = 10, ergibt das: - **Antwort: 11 Präfixe** ii) - Für eine Zeichenkette der Länge n gibt es genau n − 1 solche Teilzeichenketten (man beginnt bei Index 0 bis n−2). - Hier gilt |s| = 10, also: - **Antwort: 9 Teilzeichenketten der Länge 2** iii) - Ein Suffix ist jede Zeichenkette, die man erhält, wenn man von einem bestimmten Index i (inkl. i) bis zum Ende der Zeichenkette geht. Auch hier gilt: Die leere Zeichenkette (Suffix, das am Ende beginnt) zählt mit. - Also gibt es genau n + 1 Suffixe. - **Antwort: n + 1 Suffixe** ## Übung 2 ![image_682.png](image_682.png) ### 2a i) - $L_1=\{uhu⋅x⋅vw | x ∈ Σ^*\}$ ii) - $L_2=\{xx⋅u⋅yzyz⋅v∣u,v∈Σ^*\}$ iii) - $L_3=\{w∈{0,1,2}^*∣\#_1(w)=2⋅(\#_0(w)+\#_2(w))\}$ ### 2b - Anforderungen Python: - Muss mit einem Buchstaben (a–z, A–Z) oder Unterstrich (_) beginnen - Danach: beliebig viele Buchstaben, Ziffern (0–9) oder Unterstriche - Keine Schlüsselwörter erlaubt, aber das ignorieren wir in dieser formalen Beschreibung - Alphabet Σ: - > $Σ=\{a,…,z,A,…,Z,0,…,9,_\}$ - Formale Sprache $L{PyVars}$: - > $L{PyVars}=\{w∈Σ^*∣w=a_1a_2…a_n,a_1∈\{a-z,A-Z,\_\},a_i∈\{a-z,A-Z,0-9,\_\} für: {i=2…n}\}$ ⊆ $Σ^*$ ## Übung 3 ![image_683.png](image_683.png) ### 3a - $Σ=\{<,>,/,d,i,v\}$ - gültige Tags: `
`, `
` - Formale Sprache: - > $L_{DivTagsNoAttr} = \{
,
\} ⊆ Σ^*$ ### 3b - gültiger Beispieltag: `
` - _Attribute sind durch Leerzeichen getrennt, die Werte nicht in Anführungszeichen_ - Neues Alphabet: $Σ=\{<,>,/, \space,d,i,v,a,b,...,z\}$ - Syntax für ein Attribut: - `name=wert`, wobei $name, wert ∈ \{a,...,z\}^+$ - $attr ::= a^+=a^+$ - Start-Tag mit beliebig vielen Attributen: - `div attr1 attr2 ... attrn>` - $$ - End-Tag wie vorher - $
$ - > $L_{DivTags}=\{\{
\}, \{\}, \{
\}\} ⊆ Σ^*$ $$ L_{\text{DivTags}} = \left\{ \begin{aligned} &\langle \text{div} \rangle, \\ &\langle \text{div}(\textvisiblespace a^+ = a^+)^* \rangle, \\ &\langle / \text{div} \rangle \end{aligned} \right\} \subseteq \Sigma^* $$