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