# Hausaufgabe 1
## Übung 1
![image_681.png](image_681.png)
### 1a
i)
- $s_1 = xyxyxyzzyxxxx ∈ Σ^*$
- $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: `<div>`, `</div>`
- Formale Sprache:
  - > $L_{DivTagsNoAttr} = \{<div>, </div>\} ⊆ Σ^*$

### 3b
- gültiger Beispieltag: `<div name1=wert1 name2=wert2>`
  - _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>`
  - $<div(\textvisiblespace a^+=a^+)^*>$
- End-Tag wie vorher
  - $</div>$
- > $L_{DivTags}=\{\{<div>\}, \{<div(\textvisiblespace a^+=a^+)^*>\}, \{</div>\}\} ⊆ Σ^*$

$$
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^*
$$