Demonstration of Recursive Programming for the Collatz Sequence

COLLATZ_RECURSIVE is a MATLAB library which demonstrates recursive programming by considering the simple Collatz 3n+1 problem.

The rules for generation of the Collatz sequence are recursive. If T is the current entry of the sequence, (T is assumed to be a positive integer), then the next entry, U is determined as follows:

  1. if T is 1, terminate the sequence;
  2. else if T is even, U = T/2.
  3. else (if T is odd and not 1), U = 3*T+1;

Although the Collatz sequence seems to be finite for every starting point, this has not been proved. Over the range of starting values that have been examined, a great irregularity has been observed in the number of entries in the corresponding sequence.

The Collatz sequence is also known as the "hailstone" sequence or the "3n+1" sequence.


The computer code and data files described and made available on this web page are distributed under the GNU LGPL license.


COLLATZ_RECURSIVE is available in a C version and a C++ version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs:

COLLATZ, a MATLAB library which computes and analyzes the Collatz sequence (or "hailstone" sequence or "3n+1 sequence");

COLLATZ_PARFOR, a MATLAB program which seeks the maximum Collatz sequence between 1 and N, running in parallel using MATLAB's "PARFOR" feature.

POLPAK, a MATLAB library which evaluates a variety of mathematical functions, including Chebyshev, Gegenbauer, Hermite, Jacobi, Laguerre, Legendre polynomials, and the Collatz sequence.


  1. Eric Weisstein,
    "The Collatz Problem",
    CRC Concise Encyclopedia of Mathematics,
    CRC Press, 2002,
    Second edition,
    ISBN: 1584883472,
    LC: QA5.W45.

Source Code:

Examples and Tests:

You can go up one level to the MATLAB source codes.

Last revised on 09 March 2012.