This commit is contained in:
David Schirrmeister
2025-04-20 22:23:52 +02:00
parent 48033e23eb
commit 33a7fe4bb0
25 changed files with 256 additions and 5 deletions

View File

@ -0,0 +1,93 @@
# 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 n2).
- 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⋅vu,v∈Σ^*\}$
iii)
- $L_3=\{w∈{0,1,2}^*\#_1(w)=2⋅(\#_0(w)+\#_2(w))\}$
### 2b
- Anforderungen Python:
- Muss mit einem Buchstaben (az, AZ) oder Unterstrich (_) beginnen
- Danach: beliebig viele Buchstaben, Ziffern (09) 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^*
$$