Conjetura de Collatz
Una secuencia de Collatz se genera así: comienza con un número positivo. Si es par, divídelo entre dos. Si es impar, multiplícalo por tres y súmale uno. Repite el proceso con el número obtenido. La conjetura de Collatz afirma que toda secuencia llega finalmente a 1 (si se continúa después de 1, la secuencia 4, 2, 1 se repite indefinidamente).
La longitud de la secuencia desde el número inicial hasta 1 puede variar mucho.
Crea una función que reciba un número y devuelva un registro CollatzResult con dos valores: la cantidad de valores de la secuencia de Collatz desde el número inicial hasta 1, incluidos ambos, y el mayor número alcanzado.
Ejemplos
collatz(2) ➞ (2, 2)
// secuencia = [2, 1]
collatz(3) ➞ (8, 16)
// secuencia = [3, 10, 5, 16, 8, 4, 2, 1]
collatz(7) ➞ (17, 52)
// secuencia = [7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]
collatz(8) ➞ (4, 8)
// secuencia = [8, 4, 2, 1]Notas
Bono (improbable): encuentra un número inicial positivo que no llegue a 1 y consigue un lugar en la historia de las matemáticas, además de un premio en efectivo.
Ejemplo en Java
assertEquals(new CollatzResult(8, 16), Program.collatz(3));