Die zu erzeugende Zahlenfolge folgt folgendem Bildungsgesetz:
- Beginne mit irgendeiner natürlichen Zahl n > 0.
- Ist n gerade, dann nimm n/2.
- Ist n ungerade, dann nimm 3n + 1.
- Wiederhole die Vorgehensweise mit der erhaltenen Zahl.
Der Algorithmus lässt sich mit Python implementieren:
# collatz_problem.py from random import randint def collatz_folge_erzeugen(n): ''' Erzeugt die Zahlenfolge entsprechend dem Algorithmus nach Collatz. ''' while n != 1: if n % 2 == 0: n //= 2 else: n = 3 * n + 1 print(n, end=", ") print("...") for i in range(0,1): n = randint(1,100) print("\n\nFolge für {}!".format(n)) collatz_folge_erzeugen(n)Man sollte beachten, dass die Bedingung bei while bewirkt, dass die Collatz-Folge nicht in den Zyklus 4, 2, 1 mündet, sondern beim ersten Auftreten endet.
Keine Kommentare:
Kommentar veröffentlichen