Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Funktion von Collatz (https://www.delphipraxis.net/179778-funktion-von-collatz.html)

CocoPops 1. Apr 2014 02:02


Funktion von Collatz
 
Liebe Gemeinde.

Ich befasse mich momentan mit der Funktion oder dem Problem von Collatz.
Schnell für alle die es nicht kennen erklärt:

Man nimmt eine natürliche Zahl N > 0. Nun verarbeitet man diese Zahl mit folgenden Rechnungen bis man als Resultat 1 hat
wenn N gerade, dann N / 2
wenn N ungerade, dann N * 3 + 1

Auf diese Art und Weise erhält man einige natürliche Zahlen, bis runter zur 1. Das mathematisch bisher ungelöste Problem besteht nun darin,
dass die letzten drei Zahlen der so entstehenden Zahlenfolge scheinbar immer 4, 2, 1 ist.
Ferner ist noch nicht bewiesen, dass dies mit allen natürlichen Zahlen funktioniert.

Ich möchte mit dieser Disskusion einen kleinen Vergleich starten. Es soll kein digitaler Schwanzvergleich oder ähnliches werden.

Mathematiker 1. Apr 2014 06:07

AW: Funktion von Collatz
 
Hallo,
Zitat:

Zitat von CocoPops (Beitrag 1254256)
Vielleicht finden wir auf diese Art und Weise ein paar natürliche Zahlen, welche nicht auf 4, 2 oder 1 enden oder gar gar nicht mit 1 enden.

Vergiss es!
Bis 5,76 × 10^18 sind alle Zahlen getestet und es gibt keinen ernsthaften Zahlentheoretiker, der glaubt, dass die Collatz-Folge für irgendeine Startzahl nicht auf 1 endet.

Beste Grüße
Mathematiker

sx2008 1. Apr 2014 10:42

AW: Funktion von Collatz
 
Mal angenommen du triffst im Laufe der Rechnung auf die 6.
6 ist gerade also => 3
3 ist ungerade => 3*3+1=10
10 ist gerade => 5
5 ist ungerade => 5*3+1=16
Aus der 16 wird in gerader Linie => 8 , 4 , 2, 1
Damit ist schon mal bewiesen, dass die Zahlen 3, 5, 6 und 10 immer in der Folge 4,2,1 enden müssen.
Man könnte jetzt noch 7, 9 und 11 überprüfen und würde wohl auf das Gleiche Ergebnis kommen.
Um auf die 1 zu kommen muss die Zahlenfolge zwangsläufig immer die 4,2,1 durchlaufen.

Puke 1. Apr 2014 11:30

AW: Funktion von Collatz
 
Da kannste Testen wie du willst!

Niedriger wird der Wert von n doch nur wenn n auch gerade ist. Nur mit dem Startwert zwei wirst du diese Folge nicht bekommen.
Wenn n ungerade ist erhöht sich die Zahl und du kommst eher an einen Overflow als an die 1

Gruß Puke

himitsu 1. Apr 2014 12:08

AW: Funktion von Collatz
 
Ob es "immer" mit 1 2 4 endet, kann man leicht prüfen, da man ja nur die Werte von 1 bis zum Doppelten von 4 prüfen muß, ob die so enden und das tun sie.
Alles, was runterkommt, muß einen dieser Werte treffen, da runterzu immer nur halbiert wird.
Alle bekannten Pfade treffen immer auf eine der Zahlen von 4 bis 8 und alles was auf eine der Zahlen von 1 bis 4, bzw. 4 bis 8 trifft, endet doch immer mit 4 2 1.

Was maximal passieren könnte, wäre eine Zahlenreihe die nicht runtergeht, sondern aufsteigt oder sich im Kreis dreht.
Und davon wurde in den ersten paar "Millionen" Zahlen noch Keine gefunden, welche nicht bis auf 1 absinken tut.

CocoPops 1. Apr 2014 12:39

AW: Funktion von Collatz
 
Ernüchtigend, aber dennoch eine interessante Disskusion.

Dejan Vu 1. Apr 2014 14:03

AW: Funktion von Collatz
 
Zitat:

Zitat von CocoPops (Beitrag 1254311)
Ernüchtigend

:shock: :lol:

Mathematiker 1. Apr 2014 14:24

AW: Funktion von Collatz
 
Hallo,
ich habe mir den Quelltext mal angesehen. Was für ein Aufwand!
Es reicht:
Delphi-Quellcode:
procedure Collatz(z:int64);
begin
   listbox1.items.add('Folge für '+inttostr(z));
   repeat
     if odd(z) then z:=3*z+1
               else z:=z div 2;
     listbox1.items.add(inttostr(z));
   until z=1;
end;
Mehr brauchst Du nicht. Du kannst ja mal als Startzahlen 1674652263 (1008 Rechenschritte bis 1), oder 1410123943 (erreicht zwischenzeitlich ein Maximum von 7125885122794452160) testen.

Beste Grüße
Mathematiker


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz