Vordiplomklausur im Fach Informatik (für Elektrotechniker) – mit

Werbung
Universität Karlsruhe (TH)
Lehrstuhl Informatik für Ingenieure und Naturwissenschaftler
Prof. Dr.-Ing. R. Vollmar
Mirko Rahn
12. September 2005
Vordiplomklausur im Fach
Informatik (für Elektrotechniker)
– mit Musterlösungen –
Tragen Sie bitte Ihren Namen, Ihren Vornamen und Ihre Matrikelnummer sorgfältig und
gut lesbar in die dafür vorgesehenen Felder ein:
Name:
Vorname:
Matr.–Nr.:
Die folgende Tabelle wird nur von den Korrektoren ausgefüllt:
Aufgabe
1
2
3
4
5
Maximalpunktzahl
11
11
11
10
7
erreichte
Punktzahl
Punktsumme:
Note:
Name:
Matr.–Nr.:
1
Diese Klausur besteht aus einem Deckblatt und weiteren 7 Seiten mit insgesamt 5 Aufgaben. Bitte überprüfen Sie Ihr Exemplar auf Vollständigkeit!
Tragen Sie bitte Ihren Namen und Ihre Matrikelnummer in jede Kopfzeile ein!
Legen Sie bitte Ihren Studentenausweis bereit und denken Sie daran, dass elektronische
Hilfsmittel (insbesondere Taschenrechner) nicht erlaubt sind.
Ihre Lösungen tragen Sie bitte in die vorhandenen Leerräume ein. Wenn Sie mehr Platz
benötigen, können Sie die Rückseiten der Aufgabenblätter benutzen. Machen Sie in diesem
Fall eindeutig klar, zu welcher Aufgabe eine Bearbeitung gehört!
Zum Bestehen der Klausur benötigen Sie mindestens 25 Punkte.
Zur Bearbeitung haben Sie 120 Minuten Zeit.
Wir wünschen Ihnen viel Erfolg!
Die Ergebnisse werden voraussichtlich in der 44. Kalenderwoche (31.10.2005 bis 4.11.2005)
im WWW und per Aushang bekanntgegeben.
Name:
Matr.–Nr.:
2
Aufgabe 1 (11 × 1 Punkt): Kreuzen Sie an, ob die folgenden Aussagen wahr oder
falsch sind!
wahr
falsch
X
Die Interpretation eines regulären Ausdrucks ist eine endliche Menge.
X
Ein zusammenhängender Graph mit k Knoten hat mindestens (k − 1)
Kanten.
X
Jede Matrix aus {0, 1}n×n ist Adjazenzmatrix eines gerichteten Graphen
mit n Knoten.
X
Jede Matrix aus {0, 1}n×n ist Wegematrix eines ungerichteten Graphen
mit n Knoten.
X
Die Bisektionsweite eines ungerichteten Graphen ist kleiner als dessen
Knotenanzahl.
X
P ⊆ NP.
X
Petri-Netz-Graphen sind bipartit.
X
Beschränkte Petri-Netze terminieren.
Die von kontextfreien Grammatiken erzeugten Sprachen lassen sich nicht
immer durch reguläre Ausdrücke beschreiben.
X
X
Grammatiken mit mehr als einem Nichtterminal sind mehrdeutig.
X
Das Registermaschinenprogramm (s1 )1 (a1 s2 )1 (s2 a2 )2 hält für keine Anfangsbelegung der Register.
Name:
3
Matr.–Nr.:
Aufgabe 2 (2+1+3+2+3
Punkte): Für n ∈ N und k ∈ N sei der ungerichtete Graph
Gkn = Vnk , Enk gegeben durch:
Vnk = {0, . . . , n} × {0, . . . , k} und
Enk = Vnk × Vnk ∩ {{(a, b) , (c, d)} | |a − c| + |b − d| = 1} .
a) Stellen Sie den Graph G23 graphisch dar!
(0, 2)
(1, 2)
(2, 2)
(3, 2)
(0, 1)
(1, 1)
(2, 1)
(3, 1)
(0, 0)
(1, 0)
(2, 0)
(3, 0)
b) Geben Sie einen geschlossenen wiederholungsfreien Weg in G23 an, der jeden Knoten
genau einmal berührt!
(0, 2)
(1, 2)
(2, 2)
(3, 2)
(0, 1)
(1, 1)
(2, 1)
(3, 1)
(0, 0)
(1, 0)
(2, 0)
(3, 0)
c) Wieviele Knoten hat der Graph Gkn ? Wieviele Kanten hat der Graph Gkn ? Wie groß
ist der Durchmesser des Graphen Gkn ?
Knoten: (n + 1)(k + 1) = kn + n + k + 1
Kanten: n(k + 1) + k(n + 1) = 2kn + n + k
Durchmesser: n + k
Name:
4
Matr.–Nr.:
d) Ist der Graph Gkn bipartit? Begründen Sie kurz!
Ja, der Graph ist bipartit: Ausgehend von einem mit A gefärbten Knoten (a, b)
werden alle Knoten (c, d) mit |a − c|+|b − d| ≡ 0 mod 2 ebenfalls mit A gefärbt
und alle anderen Knoten mit B. Auf diese Art ergibt sich eine konfliktfreie 2Färbung, also ist Gkn bipartit.
e) Sei wnk : Enk → N die Gewichtsfunktion mit
wnk ({(a, b) , (c, d)}) = ac + bd.
Geben Sie einen minimalen spannenden Baum von G23 für die Gewichtsfunktion w32
an! Welches Gesamtgewicht hat dieser Baum? (Hinweis: Stellen Sie G23 nochmals
dar, beschriften Sie die Kanten mit den Gewichten und heben Sie die Kanten des
spannenden Baums hervor!)
(0, 2)
4
2
(0, 1)
6
3
1
0
(0, 0)
(1, 2)
(1, 1)
(1, 0)
10
6
3
1
0
(2, 2)
(2, 1)
11
7
4
2
(2, 0)
(3, 2)
(3, 1)
9
6
(3, 0)
Gesamtgewicht: 0 + 2 + 0 + 2 + 6 + 1 + 3 + 7 + 3 + 6 + 10 = 40
Name:
Matr.–Nr.:
5
Aufgabe 3 (3+3+3+2 Punkte): Die formale Sprache L sei als die Menge aller Wörter
über dem Alphabet {a, b} definiert, die mindestens zwei a oder das Teilwort bab enthalten.
a) Geben Sie einen regulären Ausdruck an, dessen Interpretation die Menge L ist!
(a ∪ b)∗ (a(a ∪ b)∗ a ∪ bab)(a ∪ b)∗
b) Geben Sie einen endlichen Automaten an, der L akzeptiert! (Hinweis: Denken Sie an
nichtdeterministische Automaten!)
oder auch
c) Geben Sie eine kontextfreie Grammatik an, die L erzeugt!
Eine direkte Umsetzung des Automaten oder z. B. G = (N, T, S, P ) mit T =
{a, b}, N = {S, A} und P = {S → AaAaA | AbabA, A → aA | bA | ε}
d) Geben Sie für Ihre kontextfreie Grammatik aus Teil c) Links- und Rechtsableitungen
für die Wörter aaba und bbab an! (Hinweis: Also insgesamt 4 Ableitungen.)
Links:
S → AaAaA → aAaA → aaA → aabA → aabaA → aaba
S → AbabA → bAbabA → bbabA → bbab
Rechts:
S → AaAaA → AaAabA → AaAabaA → AaAaba → Aaaba → aaba
S → AbabA → Abab → bAbab → bbab
Name:
Matr.–Nr.:
6
Aufgabe 4 (3+2+2+3 Punkte): Gegeben ist das Registermaschinenprogramm P :
(s1 a3 a4 )1 (s4 a1 )4 (s3 (s3 a4 )3 (s4 s4 a3 )4 a2 )3 s2
Die Eingabe erfolgt in Register 1, alle anderen Register enthalten initial den Wert 0.
a) Geben Sie die Registerinhalte aller verwendeten Register nach Ablauf des Programms
P bei den Eingaben n ∈ {0, 1, 2, 7, 8, 9} an!
Benutzt
n
0 ⇒
1 ⇒
2 ⇒
werden die Register
(R1 , R2 , R3 , R4 )
(0, 0, 0, 0)
(1, 0, 0, 0)
(2, 1, 0, 0)
1, 2, 3, 4.
n
(R1 , R2 , R3 , R4 )
7 ⇒ (7, 2, 0, 0)
8 ⇒ (8, 3, 0, 0)
9 ⇒ (9, 3, 0, 0)
b) Welche Funktion berechnet das Programm P ?
Der Eingabewert wird solange halbiert, bis 0 erreicht wird. Es wird gezählt,
wie oft halbiert wird, also wird die größte Zahl x bestimmt für die 2x ≤ n
ist, also blog2 nc. Doch Achtung! Diese Argumentation gilt nur für n 6= 0. Für
n = 0 wird 0 6= blog2 0c berechnet. (Deshalb auch Teil d.)
c) Wieviele Schritte führt das Programm P größenordnungsmäßig in Abhängigkeit von
der Eingabegröße n aus? Begründen Sie! (Hinweis: O-Notation!)
Die Laufzeit wird hauptsächlich von der Schleife bestimmt, in der das Register 3 als Schleifenvariable dient. Achtung! Das Register 3 wird innerhalb der Schleife verändert. Also kann
nicht einfach auf Θ(n) geschlossen werden. In der Schleife werden n + n/2 + . . . + n/2log2 n =
Plog2 n
i
i=0 n/2 = 2n− 1 (geometrische Reihe!) Operationen ausgeführt. Also ist Θ(n) doch richtig.
d) Ergänzen Sie das Programm P derart, dass es bei der Eingabe 0 nicht anhält und
für alle anderen Eingaben wie P funktioniert!
a5
(s1 a3 a4 )1 (s4 a1 )4
...
(s3
s5
(s3 a4 )3 (s4 s4 a3 )4
...
a2
...
)3
...
s2
(a5 )5
Name:
7
Matr.–Nr.:
Aufgabe 5 (7 Punkte): Chiffrieren Sie Ihre Matrikel-Nummer mit dem RSA-Verfahren!
Verwenden Sie dabei die Parameter n = 95 und d = 29! Berechnen Sie dabei alle weiteren
Parameter und fassen Sie Ihr Ergebnis zu einem einzigen Code-Wort zusammen!
Die (hypothetische) Matrikelnummer sei 1234567890.
Aus n = 95 = 5·19 ergeben sich p = 5 und q = 19. Damit gilt ϕ(n) = (p−1)·(q−1) =
4 · 18 = 72. Mittels erweitertem euklidischem Algorithmus wird nun e berechnet:
q r
a b
s
t
u
v
72 29 1
0
0
1
2 14
29 14 0
1
1 −2 2 1
14 1 1 −2 −2 5 14 0
1 0 −2 5 29 −72 − −
Also gilt e = 5. (Hier hätte systematisches Probieren ebenfalls als Berechnung gegolten.)
Da 10 ≤ n ≤ 100, wird nun die Matrikelnummer in Blöcke der Länge 1 zerlegt,
also im Beispiel 1 2 3 4 5 6 7 8 9 0. Diese Blöcke werden einzeln via
w 7→ w e mod n chiffriert.
Es gilt:
05
15
25
35
45
≡
≡
≡
≡
≡
0 mod 95
1 mod 95
32 mod 95
53 mod 95
74 mod 95
55
65
75
85
95
≡
≡
≡
≡
≡
85 mod 95
81 mod 95
87 mod 95
88 mod 95
54 mod 95
Nun kann jeder Block durch seinen Code ersetzt werden. Dabei werden die Codes
alle auf einheitliche Länge 2 (da 10 ≤ n ≤ 100) gebracht. Aus dem Resultat werden
die Leerstellen entfernt, es ergibt sich das Codewort: 01325374858187885400.
Herunterladen