Читать книгу Routineaufgaben mit Python automatisieren - Al Sweigart - Страница 104
Die Collatz-Folge
ОглавлениеSchreiben Sie die Funktion collatz() mit dem Parameter number. Wenn number eine gerade Zahl ist, soll diese Funktion number // 2 ausgeben und zurückgeben. Ist number dagegen ungerade, soll collatz das Ergebnis von 3 * number + 1 ausgeben und zurückgeben.
Schreiben Sie anschließend ein Programm, das eine ganze Zahl als Benutzereingabe entgegennimmt und anschließend für diese Zahl und danach für die Rückgabewerte immer wieder collatz() aufruft, bis die Funktion den Wert 1 zurückgibt. (Erstaunlicherweise funktioniert das mit jeder beliebigen ganzen Zahl als Ausgangspunkt. Früher oder später erreichen Sie mit dieser Folge den Wert 1. Selbst Mathematiker wissen nicht, warum das so ist. Dieses Programm veranschaulicht die sogenannte Collatz-Folge, die manchmal auch als »das einfachste unlösbare Problem der Mathematik« bezeichnet wird.)
Vergessen Sie nicht, den Rückgabewert von input() mithilfe von int() in einen Integer umzuwandeln, denn zunächst einmal ist er ein String.
Tipp: Der Integer number ist gerade, wenn number % 2 == 0, und ungerade, wenn number % 2 == 1.
Die Ausgabe dieses Programms sieht wie folgt aus:
Enter number:
3
10
5
16
8
4
2
1