Hallo,
ich beschäftige mich gerade wieder einmal mit der berühmten Collatz-Folge.
Das Startglied a(1) ist eine beliebige natürliche Zahl. Die folgenden Glieder der Zahlenfolge werden definiert mit
a(n+1) = a(n) / 2, falls a(n) gerade ist
a(n+1) = 3·a(n) + 1, falls a(n) ungerade ist
Wählt man ein beliebiges Anfangsglied, so endet die Folge stets periodisch auf 4, 2, 1. Gegenbeispiele kennt man nicht, aber auch keinen Beweis.
Bei meinem Problem geht es um das größte in den Berechnungen auftretende Glied. Gefunden habe ich bisher 7125 88512 27944 52160 bei der Startzahl 1410123943.
Zur Berechnung (beginnend bei 1) benötigt mein Programm gute 6 Minuten. Das müsste aber irgendwie schneller werden, sonst wird in vertretbarer Zeit wohl kein neuer "Rekord" gefunden.
Im Moment ist mein Computer nach 20 Minuten Rechnung bei der Startzahl 4,4 Milliarden.
Für das Programm habe ich
Gammatesters mp_arith verwendet. Das läuft auch perfekt, aber eben nicht schnell genug.
Der Algorithmus:
Quelltext
1: 2: 3: 4:
| Wiederhole Test auf gerade, dann halbieren andernfalls 3*a+1 mit Kontrolle auf neues Maximum und danach halbieren Abbruch, wenn Zwischenwert < Startzahl |
Sieht jemand eine elegante Verbesserungsmöglichkeit?
Beste Grüße
Mathematiker
Nachtrag: Das Thema hat sich erledigt und ich bin wieder einmal "deprimiert".
siehe
www.ericr.nl/wondrous/pathrecs.html
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein