Collatz Vermutung

By | 21. April 2017

Das mathematische Problem ist nach dem Deutschen Lothar Collatz benannt, der es im Jahr 1937 erstmals aufgestellt hat. Gegeben sei eine beliebige positive natürliche Zahl. Ist diese Zahl gerade, dann wird sie durch 2 geteilt. Ist sie ungerade, dann multipliziert man sie mit 3 und addiert 1. Mathematisch formuliert:

Mit dem Ergebnis dieser Rechnung wird genau nach diesem Schema weiterverfahren. Irgendwann landet man so bei der Zahl 4, aus der dann im nächsten Schritt eine 2 wird und dann eine 1. Mit der 1 landet man laut der Rechenvorschrift wieder bei der 4, und es ergibt sich ein unendlicher Zyklusder Form 4, 2, 1, 4, 2, 1, …

Eine derartige Funktion ist in Mathematica einfach zu implementieren:

Die Funktion NestWhileList iteriert die Funktion Collatz so lange das Ergebnis der Funktoin Collatz größer als Eins ist:

mit dem Ergebnis dass CollatzFolge[11]
folgende Liste berechnet:

{11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1}

Möchte man nun einen Überblick bekommen, welche Collatz-Folgen sich für die ersten 10 natürlichen Zahlen ergeben, “mapped” man einfach die Funktion auf die Liste der Zahlen:

Man erkennt daran sehr deutlich, dass die Längen der Collatz-Folgen sehr unterschiedlich sind. Startet man zum Beispiel mit der Zahl 26, ist man in zehn Schritten am Ziel (26-13-40-20-10-5-16-8-4-2-1). Beginnt man dagegen mit der 27, dann braucht es 111 Schritte, bis man bei der 1 angelangt ist.

Die graphische Darstellung dieser Zusammenhänge ist mit Hilfe von Mathematica ebenso einfach. Vom letzen Ergebnis wird einfach jeweils die Folgenlänge ermittelt. Damit kann mit einfachen Mitteln sofort die jeweilige Folgenlänge von Collatzfolgen für alle Zahlen in einem gegebenen Intervall berechnet werden. Dies liefert schließlich die Eingabe für die Funktion ListPlot.

Das Ergebnis der graphischen Darstellung könnte dann so aussehen, wobei Mathematica vielfältige OPtionen der Darstellung anbietet:

Schaut man sich einen größeren Zahlenbereich an, so kommen immer wieder gleiche Folgenlängen vor. Auch das kann man genauer analysieren.  Hierzu definieren wir zunächst eine Funktion, die die Länge der iterierten Folge einer bestimmten natürlichen Zahl direkt ausgibt. Damit ist es einfach, für ein gegebenes Intervall die jeweilige Länge der Collatzfolge zu bestimmen. Wir betrachten in diesem Falle Paare n, l wobei n eine natürliche Zahl und l die zugehörige Länge der Colatzfolge ist:

Graphisch sieht die Liste der Längen dann so aus: