Skip to content

Scripts for collatz conjeture writed on python

Notifications You must be signed in to change notification settings

Saul11235/3n--1

Repository files navigation

¿Qué es la conjetura de Collatz?

También conocido cómo conjetura de Ulam, problema de Kakutani, conjetura de Thwaites, algoritmo de Hasse ó problema de Siracusa Es una curiosidad matemática que se opera entre los enteros posistivos, dice resumidamente así:

Sea para un número entero posivo la función $F(n)/ n\in \mathbb Z^+$

    $F(n)=n/2 \longleftrightarrow x $ es par

    $F(n)=3n+1 \longleftrightarrow x$ es impar

La conjetura implica que para todo número $n$ tal que $n\in \mathbb Z^+$ al repetirse $F(n)$ sucesivamente, siempre acabará en el ciclo $4,2,1,4,2,1....$

Este problema por trivial que pueda parecer aún no es resuelto y todavía no se puede refutar o afirmar esta cojetura, en este repositorio hay 3 scripts que permiten graficar y obtener valores respecto a esta conjetura.


NumerosSerie.py

Este script al ser ejecutado ejecuta un programa sencillo que halla los elementos de una serie según la conjetura de Collatz, si se importa en un programa python tiene una función que recibe un número y devuelve una lista con valores calulados.

animated

para poder utilizar esta función en sus propios programas se puede importar la función de la siguiente manera:

from NumerosSerie import NumerosConjetura

la función NumerosConjetura, tiene sólo un parámetro de entrada, que es el número a analizar, y devuelve una lista con los siguientes valores

return [ListaNumerosSerie,NumeroElementos,ValorMaximo,PosicionValorMaximo]

Los siguientes scripts son aplicaciones de esta función y se dedican a hacer gráficos de ciertos valores analizados, solicitan de entrada valores iniciales, finales e intérvalos entre estos para obtener info, todos estos datos deberán ser números enteros.

GraficoNumeroValores.py

Analiza el parámetro NumeroElementos es decir el número de los elemtentos iterados hasta llegar a 1.

F1

GraficoPorcentajePosicionMaximo.py

Analiza en términos de porcentaje la posición de un número respecto a su posisción máxima, mediante la expresión: $%posición=100%-PosicionValorMaximo/NumeroElementos*100%$

F2

GraficoPosicionMaximo.py

Analiza el parámetro PosicionValorMaximo es decir la posición del valor mayor en la ListaNumerosSerie.

F3

GraficoValorMaximo.py

Analiza el valor numérico máximo obtenido de la conjetura, vale decir ValorMaximo.

F4

Si bien esta gráfica fue hecha con los valores por defecto, se pueden apreciar los patrones de modo más claro al incrementar el umbral de valores calculados hasta 1000000, esto se puede indicar al momento de ejecutar el script.

Max-Millon

recuerde que los valores por defecto se ingresarán en caso de que no se ingrese ningún valor numérico que sea un entero positivo.


Algunos links de interés

algunos links que te pueden servir si tienes algún interés en esto, (dicen que las matemáticas aun no están lo suficientemente maduras para tener respuestas concretas sobre esto).