Samstag, 12. Januar 2013

Die (3n+1)-Vermutung

Die (3n+1)-Vermutung bzw. das Collatz-Problem ist ein ungelöstes mathematisches Problem, welches erstmals 1937 vom Mathematiker Lothar Collatz formuliert wurde.

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.
Konkret wird vermutet, dass jede so konstruierte Zahlenfolge in den Zyklus 4, 2, 1 mündet, dabei ist der Startwert bei n > 0 nicht relevant.

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