Ubungen zur Theoretischen Informatik Blatt 1 1) Es

Werbung
Übungen zur Theoretischen Informatik
Blatt 1
1) Es gibt verschiedene Möglichkeiten, eine natürliche Zahl n zu codieren. In der unären
Codierung hat man nur ein Alphabet mit einem Zeichen – sagen wir der 1 – zur Verfügung
und die Zahl n wird durch n aufeinanderfolgende 1’en dargestellt, also z. B. ist 11111 die
Codierung der Zahl 5. Bei der binären Codierung wird (ähnlich wie bei der geläufigeren
dekadischen Schreibweise) die Zahl n geschrieben als n = ak 2k +ak−1 2k−1 +. . .+a1 21 +a0 20 ,
wobei ai ∈ {0, 1} für i = 0, . . . , k und k geeignet gewählt ist - also wird hier die Zahl 5
als 101 eincodiert.
a) Was sind die Binärcodierungen der Zahlen 13, 19, 22 und 37?
b) Wie viele Bits werden zur Binärcodierung der Zahl n benötigt?
2) In der Vorlesung wurde eine Turing-Maschine mit den vier Zuständen z0 , z1 , z2 , ze
vorgestellt, welche zu einer in Binärcodierung gegebenen natürlichen Zahl n die 1 addiert (Schöning, Seite 83).
a) Was genau macht diese Turing-Maschine in den Zuständen z0 , z1 und z2 ?
b) Geben Sie eine Turing-Maschine an, die bei Eingabe einer natürlichen Zahl n ≥ 1 in
Binärcodierung die 1 von n subtrahiert. Ausgabe soll also n − 1 in Binärcodierung sein,
wobei zu Beginn und Ende der Berechnung der Schreib-/Lesekopf am Anfang (also über
dem am weitesten links stehenden Bit) der Ein- bzw. Ausgabe steht.
3) Geben Sie eine Turing–Maschine an, die eine in Binärcodierung gegebene natürliche
Zahl n ≥ 1 mit der Zahl 2 multipliziert. Der Schreib–/Lesekopf soll sich zu Anfang und
Ende der Berechnung jeweils auf dem ersten Bit (der größten Zweierpotenz zugeordnet)
der Darstellung von n befinden. Beschreiben Sie kurz die Funktion der einzelnen Zustände.
4) Geben Sie eine Turing–Maschine an, die zwei natürliche Zahlen n und m addiert.
Eingabe sind dabei die Zahlen n und m getrennt durch das Zeichen #. Ausgabe soll die
Zahl n + m sein. Der Schreib–/Lesekopf soll dabei zu Beginn und Ende der Berechnung
am Anfang (also über dem am weitesten links stehenden Zeichen) der Ein- bzw. Ausgabe
stehen, wenn
a) die Zahlen n und m in unärer Codierung vorliegen und das Arbeitsalphabet Γ =
{1, #, Blank} ist,
b) die Zahlen n und m in binärer Codierung vorliegen und das Arbeitsalphabet Γ =
{0, 1, #, Blank} ist (Sie müssen hier die Turing–Maschinen nicht exakt angeben, sondern
skizzieren, was bei der Wahl der Zustände zu beachten ist).
Herunterladen