20.07.2013 Aufrufe

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

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

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

Universität Karlsruhe (TH)<br />

Lehrstuhl <strong>Informatik</strong> <strong>für</strong> Ingenieure und Naturwissenschaftler<br />

Prof. Dr.-Ing. R. Vollmar<br />

Mirko Rahn<br />

12. September 2005<br />

<strong>Vordiplomklausur</strong> <strong>im</strong> <strong>Fach</strong><br />

<strong>Informatik</strong> (<strong>für</strong> <strong>Elektrotechniker</strong>)<br />

<strong>–</strong> <strong>mit</strong> Musterlösungen <strong>–</strong><br />

Tragen Sie bitte Ihren Namen, Ihren Vornamen und Ihre Matrikelnummer sorgfältig und<br />

gut lesbar in die da<strong>für</strong> vorgesehenen Felder ein:<br />

Name:<br />

Vorname:<br />

Matr.<strong>–</strong>Nr.:<br />

Die folgende Tabelle wird nur von den Korrektoren ausgefüllt:<br />

Aufgabe 1 2 3 4 5<br />

Max<strong>im</strong>alpunktzahl<br />

erreichte<br />

Punktzahl<br />

11 11 11 10 7<br />

Punktsumme: Note:


Name: Matr.<strong>–</strong>Nr.: 1<br />

Diese Klausur besteht aus einem Deckblatt und weiteren 7 Seiten <strong>mit</strong> insgesamt 5 Aufgaben.<br />

Bitte überprüfen Sie Ihr Exemplar auf Vollständigkeit!<br />

Tragen Sie bitte Ihren Namen und Ihre Matrikelnummer in jede Kopfzeile ein!<br />

Legen Sie bitte Ihren Studentenausweis bereit und denken Sie daran, dass elektronische<br />

Hilfs<strong>mit</strong>tel (insbesondere Taschenrechner) nicht erlaubt sind.<br />

Ihre Lösungen tragen Sie bitte in die vorhandenen Leerräume ein. Wenn Sie mehr Platz<br />

benötigen, können Sie die Rückseiten der Aufgabenblätter benutzen. Machen Sie in diesem<br />

Fall eindeutig klar, zu welcher Aufgabe eine Bearbeitung gehört!<br />

Zum Bestehen der Klausur benötigen Sie mindestens 25 Punkte.<br />

Zur Bearbeitung haben Sie 120 Minuten Zeit.<br />

Wir wünschen Ihnen viel Erfolg!<br />

Die Ergebnisse werden voraussichtlich in der 44. Kalenderwoche (31.10.2005 bis 4.11.2005)<br />

<strong>im</strong> WWW und per Aushang bekanntgegeben.


Name: Matr.<strong>–</strong>Nr.: 2<br />

Aufgabe 1 (11 × 1 Punkt): Kreuzen Sie an, ob die folgenden Aussagen wahr oder<br />

falsch sind!<br />

wahr falsch<br />

X<br />

X<br />

X Die Interpretation eines regulären Ausdrucks ist eine endliche Menge.<br />

X<br />

X<br />

X P ⊆ NP.<br />

Ein zusammenhängender Graph <strong>mit</strong> k Knoten hat mindestens (k − 1)<br />

Kanten.<br />

Jede Matrix aus {0, 1} n×n ist Adjazenzmatrix eines gerichteten Graphen<br />

<strong>mit</strong> n Knoten.<br />

Jede Matrix aus {0, 1} n×n ist Wegematrix eines ungerichteten Graphen<br />

<strong>mit</strong> n Knoten.<br />

Die Bisektionsweite eines ungerichteten Graphen ist kleiner als dessen<br />

Knotenanzahl.<br />

X Petri-Netz-Graphen sind bipartit.<br />

X<br />

X Beschränkte Petri-Netze terminieren.<br />

Die von kontextfreien Grammatiken erzeugten Sprachen lassen sich nicht<br />

<strong>im</strong>mer durch reguläre Ausdrücke beschreiben.<br />

X Grammatiken <strong>mit</strong> mehr als einem Nichtterminal sind mehrdeutig.<br />

X<br />

Das Registermaschinenprogramm (s1)1(a1s2)1(s2a2)2 hält <strong>für</strong> keine Anfangsbelegung<br />

der Register.


Name: Matr.<strong>–</strong>Nr.: 3<br />

Aufgabe 2 (2+1+3+2+3 Punkte): Für n ∈ N und k ∈ N sei der ungerichtete Graph<br />

Gk n = V k n , Ek <br />

n gegeben durch:<br />

V k n = {0, . . ., n} × {0, . . .,k} und<br />

E k n = V k<br />

n × V k<br />

n ∩ {{(a, b) , (c, d)} | |a − c| + |b − d| = 1}.<br />

a) Stellen Sie den Graph G 2 3 graphisch dar!<br />

(0, 2) (1, 2) (2, 2) (3, 2)<br />

(0, 1) (1, 1) (2, 1) (3, 1)<br />

(0, 0) (1, 0) (2, 0) (3, 0)<br />

b) Geben Sie einen geschlossenen wiederholungsfreien Weg in G 2 3<br />

genau einmal berührt!<br />

(0, 2) (1, 2) (2, 2) (3, 2)<br />

(0, 1) (1, 1) (2, 1) (3, 1)<br />

(0, 0) (1, 0) (2, 0) (3, 0)<br />

an, der jeden Knoten<br />

c) Wieviele Knoten hat der Graph G k n? Wieviele Kanten hat der Graph G k n? Wie groß<br />

ist der Durchmesser des Graphen G k n ?<br />

Knoten: (n + 1)(k + 1) = kn + n + k + 1<br />

Kanten: n(k + 1) + k(n + 1) = 2kn + n + k<br />

Durchmesser: n + k


Name: Matr.<strong>–</strong>Nr.: 4<br />

d) Ist der Graph G k n bipartit? Begründen Sie kurz!<br />

Ja, der Graph ist bipartit: Ausgehend von einem <strong>mit</strong> A gefärbten Knoten (a, b)<br />

werden alle Knoten (c, d) <strong>mit</strong> |a − c|+|b − d| ≡ 0 mod 2 ebenfalls <strong>mit</strong> A gefärbt<br />

und alle anderen Knoten <strong>mit</strong> B. Auf diese Art ergibt sich eine konfliktfreie 2-<br />

Färbung, also ist G k n bipartit.<br />

e) Sei w k n : E k n → N die Gewichtsfunktion <strong>mit</strong><br />

w k n ({(a, b) , (c, d)}) = ac + bd.<br />

Geben Sie einen min<strong>im</strong>alen spannenden Baum von G 2 3 <strong>für</strong> die Gewichtsfunktion w 2 3<br />

an! Welches Gesamtgewicht hat dieser Baum? (Hinweis: Stellen Sie G 2 3 nochmals<br />

dar, beschriften Sie die Kanten <strong>mit</strong> den Gewichten und heben Sie die Kanten des<br />

spannenden Baums hervor!)<br />

4 6 10<br />

(0, 2) (1, 2) (2, 2) (3, 2)<br />

2<br />

1<br />

3<br />

7<br />

(0, 1) (1, 1) (2, 1) (3, 1)<br />

0<br />

3<br />

1<br />

0<br />

2<br />

6<br />

(0, 0) (1, 0) (2, 0) (3, 0)<br />

Gesamtgewicht: 0 + 2 + 0 + 2 + 6 + 1 + 3 + 7 + 3 + 6 + 10 = 40<br />

6<br />

4<br />

11<br />

9


Name: Matr.<strong>–</strong>Nr.: 5<br />

Aufgabe 3 (3+3+3+2 Punkte): Die formale Sprache L sei als die Menge aller Wörter<br />

über dem Alphabet {a, b} definiert, die mindestens zwei a oder das Teilwort bab enthalten.<br />

a) Geben Sie einen regulären Ausdruck an, dessen Interpretation die Menge L ist!<br />

(a ∪ b) ∗ (a(a ∪ b) ∗ a ∪ bab)(a ∪ b) ∗<br />

b) Geben Sie einen endlichen Automaten an, der L akzeptiert! (Hinweis: Denken Sie an<br />

nichtdeterministische Automaten!)<br />

oder auch<br />

c) Geben Sie eine kontextfreie Grammatik an, die L erzeugt!<br />

Eine direkte Umsetzung des Automaten oder z.B. G = (N, T, S, P) <strong>mit</strong> T =<br />

{a, b}, N = {S, A} und P = {S → AaAaA | AbabA, A → aA | bA | ε}<br />

d) Geben Sie <strong>für</strong> Ihre kontextfreie Grammatik aus Teil c) Links- und Rechtsableitungen<br />

<strong>für</strong> die Wörter aaba und bbab an! (Hinweis: Also insgesamt 4 Ableitungen.)<br />

Links:<br />

S → AaAaA → aAaA → aaA → aabA → aabaA → aaba<br />

S → AbabA → bAbabA → bbabA → bbab<br />

Rechts:<br />

S → AaAaA → AaAabA → AaAabaA → AaAaba → Aaaba → aaba<br />

S → AbabA → Abab → bAbab → bbab


Name: Matr.<strong>–</strong>Nr.: 6<br />

Aufgabe 4 (3+2+2+3 Punkte): Gegeben ist das Registermaschinenprogramm P:<br />

(s1a3a4)1(s4a1)4(s3(s3a4)3(s4s4a3)4a2)3s2<br />

Die Eingabe erfolgt in Register 1, alle anderen Register enthalten initial den Wert 0.<br />

a) Geben Sie die Registerinhalte aller verwendeten Register nach Ablauf des Programms<br />

P bei den Eingaben n ∈ {0, 1, 2, 7, 8, 9} an!<br />

Benutzt werden die Register 1, 2, 3, 4.<br />

n (R1, R2, R3, R4)<br />

0 ⇒ (0, 0, 0, 0)<br />

1 ⇒ (1, 0, 0, 0)<br />

2 ⇒ (2, 1, 0, 0)<br />

n (R1, R2, R3, R4)<br />

7 ⇒ (7, 2, 0, 0)<br />

8 ⇒ (8, 3, 0, 0)<br />

9 ⇒ (9, 3, 0, 0)<br />

b) Welche Funktion berechnet das Programm P?<br />

Der Eingabewert wird solange halbiert, bis 0 erreicht wird. Es wird gezählt,<br />

wie oft halbiert wird, also wird die größte Zahl x best<strong>im</strong>mt <strong>für</strong> die 2 x ≤ n<br />

ist, also ⌊log 2 n⌋. Doch Achtung! Diese Argumentation gilt nur <strong>für</strong> n = 0. Für<br />

n = 0 wird 0 = ⌊log 2 0⌋ berechnet. (Deshalb auch Teil d.)<br />

c) Wieviele Schritte führt das Programm P größenordnungsmäßig in Abhängigkeit von<br />

der Eingabegröße n aus? Begründen Sie! (Hinweis: O-Notation!)<br />

Die Laufzeit wird hauptsächlich von der Schleife best<strong>im</strong>mt, in der das Register 3 als Schleifenvariable<br />

dient. Achtung! Das Register 3 wird innerhalb der Schleife verändert. Also kann<br />

nicht einfach auf Θ(n) geschlossen werden. In der Schleife werden n + n/2 + . . . + n/2 log 2 n =<br />

log2 n<br />

i=0 n/2i = 2n−1 (geometrische Reihe!) Operationen ausgeführt. Also ist Θ(n) doch richtig.<br />

d) Ergänzen Sie das Programm P derart, dass es bei der Eingabe 0 nicht anhält und<br />

<strong>für</strong> alle anderen Eingaben wie P funktioniert!<br />

a5<br />

(s1a3a4)1(s4a1)4<br />

. . .<br />

(s3<br />

)3<br />

. . .<br />

s2<br />

s5<br />

(s3a4)3(s4s4a3)4<br />

. . .<br />

a2<br />

. . .<br />

(a5)5


Name: Matr.<strong>–</strong>Nr.: 7<br />

Aufgabe 5 (7 Punkte): Chiffrieren Sie Ihre Matrikel-Nummer <strong>mit</strong> dem RSA-Verfahren!<br />

Verwenden Sie dabei die Parameter n = 95 und d = 29! Berechnen Sie dabei alle weiteren<br />

Parameter und fassen Sie Ihr Ergebnis zu einem einzigen Code-Wort zusammen!<br />

Die (hypothetische) Matrikelnummer sei 1234567890.<br />

Aus n = 95 = 5·19 ergeben sich p = 5 und q = 19. Da<strong>mit</strong> gilt ϕ(n) = (p−1)·(q−1) =<br />

4 · 18 = 72. Mittels erweitertem euklidischem Algorithmus wird nun e berechnet:<br />

a b s t u v q r<br />

72 29 1 0 0 1 2 14<br />

29 14 0 1 1 −2 2 1<br />

14 1 1 −2 −2 5 14 0<br />

1 0 −2 5 29 −72 − −<br />

Also gilt e = 5. (Hier hätte systematisches Probieren ebenfalls als Berechnung gegolten.)<br />

Da 10 ≤ n ≤ 100, wird nun die Matrikelnummer in Blöcke der Länge 1 zerlegt,<br />

also <strong>im</strong> Beispiel 1 2 3 4 5 6 7 8 9 0. Diese Blöcke werden einzeln via<br />

w ↦→ w e mod n chiffriert.<br />

Es gilt:<br />

0 5 ≡ 0 mod 95<br />

1 5 ≡ 1 mod 95<br />

2 5 ≡ 32 mod 95<br />

3 5 ≡ 53 mod 95<br />

4 5 ≡ 74 mod 95<br />

5 5 ≡ 85 mod 95<br />

6 5 ≡ 81 mod 95<br />

7 5 ≡ 87 mod 95<br />

8 5 ≡ 88 mod 95<br />

9 5 ≡ 54 mod 95<br />

Nun kann jeder Block durch seinen Code ersetzt werden. Dabei werden die Codes<br />

alle auf einheitliche Länge 2 (da 10 ≤ n ≤ 100) gebracht. Aus dem Resultat werden<br />

die Leerstellen entfernt, es ergibt sich das Codewort: 01325374858187885400.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!