Teillösungen zum 1. Aufgabenblatt zur Vorlesung Informatik A ( Frank Hoffmann) 1. Improvisieren Stellen Sie die Zahl 6 dar durch einen Ausdruck, der genau dreimal die Ziffer i enthält und ansonsten neben Klammern nur die 4 Grundrechenarten, Quadratwurzeln und die Fakultätsfunktion benutzen darf. Für i = 2 ist dies einfach, denn 6=2+2+2. Lösen Sie diese Aufgabe für die anderen 0 ≤ i ≤ 9. Hinweis: Diese Knobelaufgabe hat mehr mit Informatik zu tun, als man zuerst denkt. Was kann man mit beschränkten syntaktischen Mitteln ausdrücken? Lösung: So geht es (nicht die einzige Lösung): √ √ √ 6 = (0! + 0! + 0!)! = (1 + 1 + 1)! = 2 + 2 + 2 = 3 · 3 − 3 = 4 + 4 + 4 = 5 + 5/5 = q √ √ √ 8+8= 9·9− 9 = 6 + 6 − 6 = 7 − 7/7 = 8 − 2. Darstellung ganzer Zahlen Unter der k–nären Darstellung (k ≥ 2) einer nichtnegativen ganzen Zahl z versteht man den String cn cn−1 . . . c1 c0 , wobei alle ci ∈ {0, . . . , k − 1}, cn 6= 0 und z = Σni=0 ci k i Bei Hexadezimalzahlen (k = 16) benutzt man als zu Grunde liegendes Alphabet {0, 1, . . . , 9, A, B, . . . , F }, wobei die Buchstaben die Dezimalzahlen von 10 bis 15 codieren. (a) Schreiben Sie die folgenden Zahlen sowohl binär, dezimal und hexadezimal. die Binärzahlen: 1001011, 11110000, 1010101 Lösung: hexa: 4B, F0 , 55 dezimal: 75, 240, 85 die Dezimalzahlen: 1026, 53789, Lösung: binär: 100 0000 0010, 1101 0010 0001 1101 hexa: 40B2 , D21D die Hexadezimalzahlen: 1000, FFF, 3A28E Lösung: binär: 1 0000 0000 0000, 1111 1111 1111, 11 1010 0010 0100 1110 dezimal: 983040, 4095, 2388222 Man beachte insbesondere, dass die Viererblöcke in der Binärdarstellung den Ziffern in der Hexadezimaldarstellung entsprechen. (b) Wie lang ist die k–näre Darstellung einer ganzen positiven Zahl und wie verhält sich diese Größe zur Länge der l–nären Darstellung? Lösung: Welche natürlichen Zahlen n lassen sich mit Darstellungsgröße m + 1 zur Basis k darstellen? Es muss gelten: 1 · k m + 0 · k m−1 + . . . + 0 ≤ n ≤ (k − 1) · k m + (k − 1) · k m−1 + . . . + (k − 1)k + (k − 1) Durch Vereinfachen+Logarithmieren ergibt sich: m ≤ logk n ≤ logk (k m+1 − 1) Damit erhält man m ≤ blogk nc < m + 1. Also ist die Darstellungsgröße von n gleich blogk nc + 1 ln Wegen logk n = log logl k unterscheidet sich die Darstellungslänge bezüglich Basis k und die Länge bezüglich l für k, l > 1 nur um einen konstanten Faktor, unabhängig(!) von n. 3. Etwas Praktisches Vor Ihnen liegen 12 Rollen mit 1-Euro-Münzen, die Rollen sind durchnummeriert von 1 bis 12. Genau 1 der Rollen enthält Falschgeld und hat deshalb ein anderes Gewicht. Ihre Aufgabe ist es, mittels einer Balkenwaage festzustellen, welche der Rollen Falschgeld enthält und ob diese leichter bzw. schwerer als eine normale Rolle ist. (Dass es EuroMünzen sind ist offensichtlich unwichtig!) (a) Sie dürfen nur jeweils eine Rolle gegen eine andere vergleichen. Beschreiben Sie ein Verfahren, das mit möglichst wenigen Vergleichen auskommt. Wie viele sind das im schlechtesten Fall und warum geht es nicht besser? Antwort: Jede Rolle muss mindestenens einmal auf der Waage liegen, also mindestens 6 Wägungen. Dabei tritt im schlechtesten Fall erst beim letzten Mal eine Ungleichheit auf und wir kennen eine potenziell zu leichte und eine potenziell zu schwere Rolle. Danach reicht ein Vergleich z.B. der potenziell leichteren mit einer korrekten Rolle, um die falsche ausfindig zu machen, also 7 Wägungen insgesamt. (b) Sie dürfen mehrere Rollen gegeneinander wiegen. Jetzt reichen 3 Vergleiche aus! Beschreiben Sie ein solches Verfahren. Tipp: Beginnen Sie mit vier Rollen auf jeder Seite. Der schwierige Fall tritt bei Ungleichheit ein, Sie also noch acht Verdächtige haben. Antwort: Nach dem Vergleich 4 gegen 4 haben wir 2 Fälle. Fall 1: Gleichheit Die falsche Rolle ist unter den restlichen 4, es gibt jetzt noch 8 Antwortmöglichkeiten. Jede der 4 kann zu leicht oder zu schwer sein. Wägen 3 potenziell Falsche gegen drei Korrekte ab: • Gleichheit: Die 4. Falsche ist die gesuchte Rolle und mit der 3. Wägung (gegen eine korrekte Rolle) bestimmen wir, ob sie zu leicht oder zu schwer ist. • Ungleichheit: Wir haben 3 Verdächtige und wissen schon, ob die gesuchte Rolle zu leicht oder zu schwer ist. Der Vergleich von 2 Verdächtigen untereinander bestimmt das Ergebnis. Fall 2: Ungleichheit: Wir kennen 4 potenziell zu leichte Rollen, seien dies L1 , L2 , L3 , L4 , und seien S1 , . . . , S4 die potenziell zu schweren. Es gibt also noch 8 Antwortmöglichkeiten. Wir wiegen wie folgt (die Ki sind korrekt): L1 + L2 + S1 + S2 vs. L3 + K1 + K2 + K3 • Gleichheit: Damit sind L4 , S3 , S4 noch verdächtig. Die Wägung S3 gegen S4 entscheidet dies korrekt. • Ungleichheit: Falls L1 + L2 + S1 + S2 leichter: Jetzt sind nur noch L1 und L2 verdächtig und wir vergleichen sie gegeneinander. Falls L1 + L2 + S1 + S2 schwerer: Jetzt sind noch S1 , S2 und (!) L3 verdächtig und ein Vergleich S1 gegen S2 klärt die Situation. (c) Argumentieren Sie, dass es kein Verfahren gibt, das immer mit zwei Vergleichen auskommt. Antwort: Wir haben 24 mögliche Antworten, jede der 12 Rollen kann zu leicht oder zu schwer sein. Mit zwei hintereinander ausgeführten Wägungen unterscheidet man aber höchstens 9 der Antworten, denn als Entscheidungsgrundlage hat man nur die 3 Ergebnisse der ersten Wägung kombiniert mit den 3 Ergebnissen der sich jeweils anschließenden Wägung. 4. Logik im Alltag A(lice), B(ob), C(arol) und D(ave) fahren mit dem Zug und haben Platzkarten für ein Viererabteil, wobei die Plätze 1 und 2 (3 und 4) vorwärts (rückwärts) zur Fahrtrichtung liegen und 1 und 3 Fensterplätze sind. Folgende Wünsche sind zu berücksichtigen: 1) D will nicht rückwärts fahren, 2) B und C wollen nebeneinander sitzen, 3) A wünscht einen Fensterplatz 4) B und D wollen sich nicht gegenüber sitzen. (a) Finden Sie eine Platzverteilung die alle Wünsche berücksichtigt. Ist sie eindeutig? (b) Formulieren Sie ein Modell, in dem sich die Bedingungen 1) bis 4) als Boolesche Terme audrücken lassen. Gibt es eine eindeutige Belegung der Variablen, die diese Terme wahr macht? (c) Wenn nicht, formulieren Boolesche Terme für weitere Bedingungen, die erfüllt sein müssen, um Eindeutigkeit zu erzwingen. Lösungshinweis: Zunächst wählen wir sinnvolle Variablenbezeichner, etwa xi steht für “ Person X sitzt auf Platz i. Forderung 1 entspricht dann dem Term t1 = d1 ∨ d3 . Forderung 2 ist der Term t2 = (b1 ∧ c2 ) ∨ (c1 ∧ b2 ) ∨ (b3 ∧ c4 ) ∨ (c3 ∧ b4 ), usw. Man sollte auch etwas formalisieren wie “Auf jedem Platz sitzt genau eine Person” und “Jede Person sitzt genau auf einem Platz”. Für D könnte das insgesamt etwa lauten ((d1 ∧ ¬a1 ∧ ¬b1 ∧ ¬c1 ) ∨ (d3 ∧ ¬a3 ∧ ¬b3 ∧ ¬c3 )) ∧ ¬(d1 ∧ d3 ) usw. 5. Kleene–Stern Zeigen Sie, dass für formale Sprachen L1 , L2 über einem Alphabet Σ die folgenden Aussagen im Allgemeinen falsch sind: (L1 ∪ L2 )∗ = (L∗1 ∪ L∗2 ) , (L1 ◦ L2 )∗ = (L∗1 ◦ L∗2 ) (L1 ∩ L2 )∗ = (L∗1 ∩ L∗2 ) Sie müssen also jeweils konkrete Sprachen angeben und ein Wort, das zur einen Menge aber nicht zur anderen Menge gehört. Es gibt nur genau zwei formale Sprachen L, sodass L∗ eine endliche Menge ist. Welche sind das? Lösung: (L1 ∪ L2 )∗ = (L∗1 ∪ L∗2 ) ist falsch, setze L1 = {0} und L2 = {1}. (L1 ∪ L2 )∗ enthält alle Wörter über {0, 1}, (L∗1 ∪ L∗2 ) enthält keine Wörter, die sowohl Nullen als auch Einsen enthalten. (L1 ◦ L2 )∗ = (L∗1 ◦ L∗2 ) ist falsch. Sei L1 , L2 wie eben. (L1 ◦ L2 )∗ enthält Wort 0101, (L∗1 ◦ L∗2 ) enthält dieses Wort nicht. Das Wort 001 ist in rechter Seite enthalten, aber nicht in der linken. (L1 ∩ L2 )∗ = (L∗1 ∩ L∗2 ) ist falsch, wähle L1 = {0} und L2 = {00}. Dann ist die linke Seite die Menge {}, rechts steht L∗2 . L∗ = {} für L = ∅ und L = {}. Sobald ein anderes Zeichen a in L enthalten ist, sind alle Wörter an für n > 0 in L∗ und die Sprache ist unendlich. 6. Tautologien Bestimmen Sie, ob die folgenden Booleschen Terme Tautologien sind. t1 = ((p ⇒ q) ∧ (q ⇒ r)) ⇒ (p ⇒ r) t2 = (¬q ∧ (p ⇒ q)) ⇒ ¬p Lösung: Solche Aufgaben kann man mit Wertetabelle lösen oder durch semantisch äquivalentes Umformen. Hier sind die Umformungen für t1 : [(p ⇒ q) ∧ (q ⇒ r)] ⇒ (p ⇒ r)] ≡ ¬[(¬p ∨ q) ∧ (¬q ∨ r)] ∨ (¬p ∨ r) ≡ (p ∧ ¬q) ∨ ¬p ∨ (q ∧ ¬r) ∨ r ≡ (p ∨ ¬q) ∨ (q ∨ r) ≡ p ∨ r ∨ True ≡ True Auflösung der Implikationen de Morgan’sche Regel+Assoz.+Kommut. Distributivität Assoziativität und Komplementärregel Hier ist die Wertetabelle für t2 : p 0 0 1 1 q ¬q p ⇒ q ¬q ∧ (p ⇒ q) ¬p t2 0 1 1 1 1 1 1 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 7. Antivalenz und NOR–Operator Der NOR–Operator (man sagt auch Pierce–Symbol) p ↓ q zweier Wahrheitswerte p, q ist genau dann 1, wenn gleichzeitig p = 0 und q = 0 gilt. Das entspricht also der negierten Disjunktion. Untersuchen Sie, ob jeweils das Kommutativ- und das Assoziativgesetz für die Antivalenz bzw. den NOR–Operator gelten! Lösung: Auch hier kann man Wertetabelle bilden oder semantisch äquivalent umformen. Die Kommutativität für ↓ folgt aus der Kommutativität von ∨: x ↓ y ≡ ¬(x ∨ y) ≡ ¬(y ∨ x) = y ↓ x Für die Assoziativität: x y z x ↓ y (x ↓ y) ↓ z y ↓ z x ↓ (y ↓ z) 0 0 0 1 0 1 0 0 0 1 1 0 0 1 An dieser Stelle kann man das Ausfüllen abbrechen, denn Assoziativität ist verletzt. Die Antivalenz ist assoziativ und kommutativ. Was auch klar sein sollte, denn sie entspricht der Addition mod 2.