IIm18-Kreativaufgabe1
Aus ProgrammingWiki
Inhaltsverzeichnis |
Aufgabenstellung
Modellieren Sie die skurrilen Deutungen von Unendlichkeit am Beispiel ”Hilbertbus“ im ProgrammingWiki.
Wer wohnt in Zimmer 234? Hinweis: Verwenden Sie streams.
Arbeiten Sie im Team an Verbesserungen und ggf. an Erweiterungen.
Hilfsfunktionen
Einige Hilfsfunktionne die benötigt werden für die Aufgabe.
Hotel bauen
Die Zimmer des unendlichen Hotels werden fortlaufend durchnummeriert. Das erste Zimmer besitzt die Nummer 0. Außerdem gibt es in unserem Hilberthotel nur Einzelzimmer. Als Erstes wird das Hotel gebaut und bis jetzt ist noch kein Gast eingezogen und deshalb werden die Zimmer mit false vorbelegt.
Einzelbuchung
Die ersten Gäste treffen ein und jedem Gast wird ein Zimmer zugeordnet. Falls das Zimmer bereits belegt ist, wird eine Meldung ausgegeben, wer das Zimmer bereits bezogen hat. Mittels set wird die Buchung im Hilberthotel übernommen.
Baue Kleinbus
Hier wird eine Funktion definiert, die einen Kleinbus erstellt. Der Kleinbus hat eine Nummer und eine feste Anzahl an Sitzplätzen. Der Kleinbus wird hier wieder als Stream repräsentiert.
Die Belegung von Kleinbus 0815 sieht folgendermaßen aus:
Kleingruppenbuchung
Der soeben erstellte Kleinbus fährt vor dem Hotel vor. Die Gäste müssen nun in die Zimmer untergebracht werden. Dafür wird festgelegt, dass das erste freie Zimmer als nächstes vergeben wird.
Die Belegung vom Hilberthotel nach dem Einchecken der Gäste vom Kleinbus:
baue Hilbertbus
Als nächstes werden sogenannte Hilbertbusse gebaut. Dies sind Busse die unendlich viele Sitzplätze haben und somit unendlich viele Personen befördern können. Der Bus bekommt als Parameter wieder eine Nummer.
check-in Hilbertbusgäste
Der Hilbertbus 3813 fährt vor dem Hotel vor und den Gästen wird ein Zimmer zugeordnet. Dazu wird ein spezielles Check-In verwendet, welches den Stream des Hilbertbusses nimmt und jeden Gast in das nächste freie Zimmer einquartiert.
Die Belegung des Hotels nach der Ankunft des Hilbertbusses
Umzug nach gerade
Nach der Ankunft des Hilbertbusses, könnte man glauben das Hilberthotel sei ausgebucht. Doch dem ist nicht so. Es hat sich schon ein weiterer Bus angekündigt. Um die zukünftigen Gäste aufnehmen zu können, müssen die bisherigen Hotelgäste einen Umzug in Kauf nehmen.Dazu wird jeder Gast aus Zimmer n in das Zimmer 2n umziehen. Damit ist sichergestellt, dass alle Gäste ein Zimmer bekommen, da es unendlich viele gerade Zahlen gibt. Die ungeraden Zimmernummern sind somit wieder frei und der nächste Bus kann entspannt erwartet werden.
Das Hotel nach dem Umzug der Gäste in die geraden Zimmernummern.
Die Belegung des Hotels nach der Ankunft des Bus 33
Konvoi
Jetzt kündigt sich ein Konvoi von Hilberbussen an. Die Firma MacroHard (Abkz. "MH")möchte einen Betriebsausflug machen und mit ihrer gesamten Firma in dem Hilberhotel einchecken. Die Firma ist sehr groß. Die Firma hat unendlich viele Abteilungen und in den einzelnen Abteilungen arbeiten unendlich viele Mitarbeiter. Der Konvoi sieht folgendermaßen aus: Jeder Bus repräsentiert eine Abteilung von MAcroHard mit deren Abteilungsmitarbeiter. Beginnend mit der Abteilung 0. Das Ergbnis ist ein Stream von Hilbertbussen.
So sieht der Konvoi aus, wenn er sich auf dem Weg zum Hilberhotel macht:
Konvoi zu Kette
Wenn der Konvoi am Hilberthotel ankommt, wäre es problemaitsch wenn Abteilung nacheinander eincheckt im Hilberthotel. Das würde bedeuten, dass die Gäste im Hilberthotel unendlich oft ihr Zimmer wechseln müssten. Das wollen wir den Hotelgästen nicht zumuten und es muss eine Reihenfolge gefunden werden mit der die Mitarbeiter von MacroHard eingecheckt werden können. Dafür werden die einzelnen Streams der Hilbertbusse zu einem großen Zusammengefasst. Wie kann aber sichergestellt werden, dass kein Gast vergessen wird? Wir haben einmal den Index der Abteilung und die Platznummer innerhalb des Busses. Wenn wir dann die Summe der beiden Indices bilden, haben wir eine Reihenfolge gefunden, in der die Gäste einchecken können, ohne das ein Gast vergessen wird. Die theoretische Basis bildet das Cantorsche Diagonalisierungsverfahren 1. Art.
Hilfsfunktionen
Einchecken der Kette
Die Hotelgäste müssen jetzt einmal umziehen und wieder von ihrer Zimmernummer n in das Zimmer mit der Nummmer 2n umziehen. Anschließend können die Mitarbeiter von MAcroHard einchecken.
Das Hotel nach der Ankunft und einchecken von dem Konvoi
Wer wohnt in Zimmer 234?
Die eingangsgestellte Frage kann nun beantwortet werden: