Si N es impar, el siguiente n´umero de la sucesi´on es 3N + 1

Texto completo

(1)

1 C´omputo Cient´ıfico II - CO2112 - Laboratorio 1

La conjetura de Collatz, conocida tambi´en como conjetura 3n + 1 o conjetura de Ulam (entre otros nombres), fue enunciada por el matem´atico Lothar Collatz en 1937, y a la fecha no se ha resuelto.

El problema se enuncia como sigue. Partiendo de un n´umero natural cualquiera N, se genera una sucesi´on de n´umeros naturales siguiendo la siguiente regla: Si N es par, el siguiente n´umero de la sucesi´on es N/2. Si N es impar, el siguiente n´umero de la sucesi´on es 3N + 1.

Los t´erminos de esta sucesi´on se generan hasta llegar al valor 1. La conjetura de Collatz asegura que siempre se alcanzar´a el valor 1, independientemente del valor inicial de la sucesi´on.

Por ejemplo, partiendo del valor 13 se obtiene la siguiente sucesi´on:

13, 40, 20, 10, 5, 16, 8, 4, 2, 1 .

Se solicita escribir un programa en ANSI C que construya sucesiones de Collatz a partir de un valor inicial pedido por pantalla. El programa debe permitir al usuario generar tantas suceciones de Collatz como desee. Cuando el usuario ingrese el valor cero, el programa detendr´a su ejecuci´on. Adem´as se debe validar que el valor inicial ingresado sea positivo o cero. El programa debe imprimir por pantalla la sucesi´on de Collatz en bloques de 10 elementos por l´ınea. Tambi´en debe imprimir la cantidad de t´erminos de la sucesi´on.

La entrega debe ocurrir a m´as tardar a las 11:59 pm del jueves 7 de febrero, enviando a mi correo electronico un archivo comprimido (zip o rar) de nombre:

“CO2112 lab01 apellido nombre”.

Este archivo s´olo debe contener los archivos fuentes.

Observaciones generales

• ¿C´omo escribir un programa?

1. Especificar el problema.

2. Analizar y dividir ´este en una serie de pasos que conduzcan a la soluci´on, es decir, dise˜nar un algoritmo.

3. Escribir el c´odigo en ANSI C.

4. Compilar y corregir posibles errores de sintaxis.

USB, CO2112, Profs. Sa´ul Buitrago y Oswaldo Jim´enez

(2)

2

5. Ejecutar el programa, verificando que funciona para todos los casos previstos en el dise˜no del algoritmo.

• El programa debe estar debidamente documentado. Recuerde que, en general, no es necesario (ni deseado) comentar cada l´ınea de c´odigo escrita. La mayor´ıa de las veces, las l´ıneas individuales hablan por s´ı solas en cuanto al trabajo puntual que realizan. Un buen comentario es aquel que nos dice cu´al es la raz´on por la cual la l´ınea est´a escrita de cierta manera y c´omo encaja eso dentro del contexto completo del programa.

USB, CO2112, Profs. Sa´ul Buitrago y Oswaldo Jim´enez

Figure

Actualización...

Referencias

Actualización...

Related subjects :