AccountPasswort
Lt. Junior Grade
- Registriert
- Aug. 2015
- Beiträge
- 258
Eigentlich egal welchen Code man nimmt.
Die Collatz Vermutung ist eines von vielen ungelösten mathematischen Problemen. Gibts seit ca. 80 Jahren.
Wie würde denn der Code aussehen?
Wie kann er optimiert werden, vor allem weil viele Zahlen bei schon bekannten Zahlen einer Rechnung auftauchen (Schleife)?
Wie errechnet man die Rechendauer für ab 15-stelligen Zahlen?
Collatz-Vermutung kennt ja jeder oder?
Jede Zahl n die mit folgender Regel behandelt wird endet immer auf 1. Oder etwas mehr präzise:
Jede so konstruierte Zahlenfolge mündet in den Zyklus 4, 2, 1, egal, mit welcher natürlichen Zahl man beginnt.
Beeindruckend dabei sind die Anzahl der Schritte von n bis 1. Die sollten ggf. auch gezählt werden. Und welche Zahlen das nicht tun, das wäre der Jackpot. Bisher hat man keine gefunden. "Wir" bzw. Großrechner sind bei Nummer 27 Billion.
nzz.ch - Geschichte:
https://www.nzz.ch/article8BTQT-1.425865
Die Regel lautet:
- ist n gerade (even) teilt man durch 2
- ist n ungerade (odd) gilt 3*n+1
Alle ungeraden werden mit der 2. Regel (3*n+1) gerade, kann man also gleich durch 2 teilen.
Ist nicht schwer aber schaun wir mal oder? Oder nicht?
Bsp:
7 (odd)
3*7+1 = 22 (even)
22/2 = 11 (odd)
3*11+1 = 34 (even)
34/2 = 17 (odd)
3*17 +1 = 52 (even)
52/2 = 26 (even)
26/2 = 13 (odd)
3*13+1 = 40 (even)
40/2 = 20 (even)
20/2 = 10 (even)
10/2 = 5 (odd)
3*5+1 = 16 (even)
16/2 = 8 (even)
8/2 = 4 (even)
4/2 = 2 (even)
2/2 = 1
Tip: Jede Zahl von einem Ergebnis geht den gleichen Weg abwärts zu 1. Wenn man also dort Schleifen reinprogrammiert, dürfte es schneller gehen.
Natürlich ist das nur was für Rechner die mit 15-stelligen Zahlen gut umgehen können. Bis 27 Billiarden hat man bisher keine Folge gefunden die nicht auf 4,2,1 endet.
Viel Spaß.
Code by: https://stackoverflow.com/users/566644/lauritz-v-thaulow
Die Collatz Vermutung ist eines von vielen ungelösten mathematischen Problemen. Gibts seit ca. 80 Jahren.
Wie würde denn der Code aussehen?
Wie kann er optimiert werden, vor allem weil viele Zahlen bei schon bekannten Zahlen einer Rechnung auftauchen (Schleife)?
Wie errechnet man die Rechendauer für ab 15-stelligen Zahlen?
Collatz-Vermutung kennt ja jeder oder?
Jede Zahl n die mit folgender Regel behandelt wird endet immer auf 1. Oder etwas mehr präzise:
Jede so konstruierte Zahlenfolge mündet in den Zyklus 4, 2, 1, egal, mit welcher natürlichen Zahl man beginnt.
Beeindruckend dabei sind die Anzahl der Schritte von n bis 1. Die sollten ggf. auch gezählt werden. Und welche Zahlen das nicht tun, das wäre der Jackpot. Bisher hat man keine gefunden. "Wir" bzw. Großrechner sind bei Nummer 27 Billion.
nzz.ch - Geschichte:
https://www.nzz.ch/article8BTQT-1.425865
Die Regel lautet:
- ist n gerade (even) teilt man durch 2
- ist n ungerade (odd) gilt 3*n+1
Alle ungeraden werden mit der 2. Regel (3*n+1) gerade, kann man also gleich durch 2 teilen.
Ist nicht schwer aber schaun wir mal oder? Oder nicht?
Bsp:
7 (odd)
3*7+1 = 22 (even)
22/2 = 11 (odd)
3*11+1 = 34 (even)
34/2 = 17 (odd)
3*17 +1 = 52 (even)
52/2 = 26 (even)
26/2 = 13 (odd)
3*13+1 = 40 (even)
40/2 = 20 (even)
20/2 = 10 (even)
10/2 = 5 (odd)
3*5+1 = 16 (even)
16/2 = 8 (even)
8/2 = 4 (even)
4/2 = 2 (even)
2/2 = 1
Tip: Jede Zahl von einem Ergebnis geht den gleichen Weg abwärts zu 1. Wenn man also dort Schleifen reinprogrammiert, dürfte es schneller gehen.
Natürlich ist das nur was für Rechner die mit 15-stelligen Zahlen gut umgehen können. Bis 27 Billiarden hat man bisher keine Folge gefunden die nicht auf 4,2,1 endet.
Viel Spaß.
Code by: https://stackoverflow.com/users/566644/lauritz-v-thaulow
Python:
def collatz_sequence(x):
seq = [x]
if x < 1:
return []
while x > 1:
if x % 2 == 0:
x = x / 2
else:
x = 3 * x + 1
seq.append(x) # Added line
return seq
Python:
~/tmp$ python collatz.py
[6, 3, 10, 5, 16, 8, 4, 2, 1]