positive integer n. Repeat the following steps:
- If n = 1, stop.
- If n is even, replace it with n/2.
- If n is odd, replace it with 3n + 1
The unanswered question is, does the process always terminate?
Let to see a script that generate the sequence of number involved by the algorithm:
import sys from pylab import * # take n from the command line n = int(sys.argv) i = 0 old_n = n while n > 1: if n%2 == 0: # if n is even n = n/2 else: n = 3*n+1 i += 1; plot([i-1, i],[old_n,n],'-ob') old_n = n title('hailstone sequence for '+sys.argv+', length is '+str(i)) show()The script will plot the sequence:
$ python collatz.py 25
The Collatz conjecture is is also known as the 3n + 1 conjecture, the Ulam conjecture, Kakutani's problem, the Thwaites conjecture, Hasse's algorithm, or the Syracuse problem; the sequence of numbers involved is referred to as the hailstone sequence or hailstone numbers, or as wondrous numbers.