In den Umkleideräumen eines Schwimmbades stehen 100 Personen. Die erste Person öffnet alle Spinde. Die zweite öffnet jeden zweiten Spind. Die dritte ändert den Zustand jedes dritten Spindes, d.h. der Spinde 3, 6, 9 usw. trifft sie auf einen offenen Spind, so verschließt er diesen, trifft er auf einen verschlossenen Spind, so öffnet sie ihn. Die Frage lautet nun: Welche Spinde sind am Ende, wenn alle 100 Personen die Umkleideräume passiert haben, noch offen?
Wir werden diese Fragestellung, wie auch die zuvor schon behandelten Probleme zunächst im klassischen Programmierstil mit Mathematica lösen.Danach werden wir eine Lösung angeben, die mit "Mathematica-Bordmittlen" erzeugt ist und wesentlich näher "am Problem" ist.
Wir betrachten hier ein Problem, daß als "Locker-Problem" in der Informatik bekannt ist. Es geht dabei um folgendes:
In den Umkleiderräumen eines Schwimmbades stehen 100 Studenten. Der erste Student verschließt alle Spinde. Der zweite Student öffnet jeden zweiten Spind. Der dritte Student ändert den Zustand jedes dritten Spindes, d.h. der Spinde 3, 6, 9 usw. trifft er auf einen offenen Spind, so verschließt er diesen, trifft er auf einen verschlossenene Spind, so öffnet er ihn. Die Frage lautet nun: Welche Spinde sind am Ende, wenn alle 100 Studenten die Umkleideräume passiert haben, noch offen?
Wir werden diese Fragestellung, wie auch die zuvor schon behandelten Probleme zunächt im klassichen Programmierstil mit Mathematica lösen. Die Lösung ist hier kein größeres Problem. Die Lösung läßt sich mit zwei geschachtelten Schleifen einfach ermitteln. Der Einfachheit halber beginnen wir erst mit dem zweiten Studenten und der Ausgangssituation, daß alle Spinde offen sind.
Es bleiben also alle Spinde offen deren Nummern Quadratzahlen sind. Ein durchaus nicht offensichtliches Ergebnis.
Mathematica Notebook
PDF
Made in RapidWeaver