BuK-Übung03 G2
Aus ProgrammingWiki

Inhaltsverzeichnis |
Aufzählbarkeit und Entscheidbarkeit
Aufgabe
Zeigen Sie, dass für ein beliebiges Alphabet A eine überabzählbar unendliche Menge
ist.
Lösung
Wenn abzählbar unendlich wäre, so müsste eine bijektive Abbildung auf die natürlichen Zahlen erfolgen können.
Bijektiv bedeutet in diesem Fall, dass jedem Element aus
genau ein Element aus
zugeordnet wird.
Die Menge wird über
gebildet. Unter der Annahme, dass
abzählbar unendlich ist, müsste man also
zuerst die natürlichen Zahlen auf
abbilden können und anschließend
auf
.
Für eine bijektive Abbildung von auf
müssten also alle drei Mengen gleichmächtig, im konkreten Fall also abzählbar unendlich sein.
Dass
abzählbar unendlich ist steht außer Frage. Dass
ebenfalls abzählbar unendlich ist, wurde in Übung 2 nachgewiesen.
Wie kann nun die Mächtigkeit von bestimmt werden?
Die Potenzmenge ist folgendermaßen definiert:
.
Die Menge
besteht aus den Wörtern
.
Daraus folgt, dass
für jedes
aus
ein Element der Form
enthält.
Zusätzlich enthält
aber unter Anderem auch
. Das allein reicht aus, um sagen zu können
.
Somit ist bewiesen, dass es keine bijektive Abbildung von auf
geben kann und somit auch keine von
auf
. Demzufolge ist
eine überabzählbar unendliche Menge.
Aufgabe
Implementieren Sie eine Scheme-Prozedur chi-endlich, die eine natürliche Zahl n und
eine Liste L nimmt und entweder #t oder #f zurückgibt, je nachdem ob oder
gilt.
Stellen Sie für den Entwurf von chi-endlich die erforderlichen Hilfsprozeduren bereit.
Lösung
Aufgabe
Schreiben Sie eine Scheme-Prozedur, die die Menge der Quadratzahlen aufzählt.
Lösung
Man sagt zählt
auf, wenn gilt:
ist eine totale Funktion der Form
ist surjektiv und berechnbar und deren Wertebereich ist
Dabei ist die Menge der Quadratzahlen. Die Funktion
muss also eine surjektive Abbildung der natürlichen Zahlen
auf die Menge
vornehmen und berechenbar sein.
Dazu benötigen wir die sogenannte Aufzählfunktion
für die Menge der Quadratzahlen.
Die Menge erzeugen wir mit Hilfe von Streams.
Damit können wir wie folgt implementieren:
Aufgabe
Schreiben Sie eine Scheme-Prozedur, die die Menge der Quadratzahlen relativ zur Menge der natürlichen Zahlen semi-entscheidet.
Hinweis: Implementieren Sie eine Prozedur für die (allgemeingültige) und wenden
Sie sie auf die Menge (stream) der natürlichen Zahlen an. Überlegen Sie sich vor dem
Aufruf genau, welche Ausgabe Sie erwarten.
Lösung
Vorsich: Der folgende Aufruf stoppt nicht!
Um stoppen zu lassen verwenden wir weiter oben definierte Prozeduren.