viernes, 29 de diciembre de 2017

LA CONJETURA FUERTE DE GOLDBACH




Todo número par mayor que 2 puede escribirse como suma de dos números primos, fue enunciada por Christian Goldbach, fue formulada el 7 de junio de 1742 en una carta dirigida a Leonhard Euler.

La carta se puede descargar en este enlace:


En este video se explican las dos conjeturas, la fuerte y la débil (ya demostrada)



Entramos a destripar el contenido, cualquier numero se puede descomponer en la suma de dos números, como por ejemplo:

La descomposición de 10, en suma de número es :
los valores son 1 y 9
los valores son 2 y 8
los valores son 3 y 7
los valores son 4 y 6
los valores son 5 y 5

La descomposición no tiene por que ser única, pueden existir en el caso del cumplimiento, dos o más parejas de primos.

en la conjetura sólo nos interesan los impares, que son los que potencialmente pueden ser primos



Os dejo un programa en Python que hace la descomposición en sumas, para obtener sólo los impares, hay que cambier el 1 en rojo por un 2 así de fácil.

# scrip para comprobar la conjetura de Goldbach
# todo numero par mayor de 2 se puede descompomener en la suma de dos numeros primos


numero=int(input('Introduce el numero par a descomponer '))
if (numero%2)==0 and numero>=2:
    for n in range(1, (numero+1)//2+1,1):
        print('los valores son {0:d} y {1:d} '.format(n,numero-n))
        # en la descomposicion solo se toman los numeros impares
else:
    print('El numero {0:d} no es par o es menor o igual a 2 '.format(numero))

# colocamos un input para que no se cierre la ventana del sistema operativo
print("Fin de los calculos pulsa intro para terminar ")
tecla = input()# colocamos un input para que no se cierre la ventana del sistema operativo


# colocamos un input para que no se cierre la ventana del sistema operativo
print("Fin de los calculos pulsa intro para terminar ")
tecla = input()# colocamos un input para que no se cierre la ventana del sistema operativo

Ahora biene lo bueno, durante casi trescientos años no se ha podido demostrar o refutar la conjetura, con la llegada de los ordenadores, se está intentando comprobar mediante cálculo encontrar un número, cuyos pares de suma no tenga un par de primos, es decir se busca la suma de dos números impares en lo que en todas las sumas posibles no aparezcan dos números primos.

Si tenemos paciencia y un sistema computacional del estilo de los usados en minado de Criptomonedas, podemos intentar poner a prueba la conjetura, a continuación el código en Python, funciona para los pares mayores de 6, ¿por que?, el número 4, se descompone en 2+2 y 3+1, los primeros con pares (el 2 el único primo par) y en el segundo caso el 1, no es primo.



# todo scrip para comprobar la conjetura fuerte de Goldbach
# todo numero par mayor de 2 se puede descompomener en la suma de dos numeros primos
# todo a partir del 6 comprobando solo los impares

from sympy import isprime

maximo=int(input('Mayor numero a manejar='))
detectados=0 #casos que incumplen la conjetura

for numero in range(6,maximo+1,2):
    #print('Descomposicion del numero {0:d}'.format(numero))
    contador=0

    for n in range(1, (numero+1)//2+1,2):
        n_derecha=n
        n_izquierda=numero-n

        if (isprime(n_derecha)==True) and (isprime(n_izquierda)==True) and n_derecha+n_izquierda==maximo :
             contador=contador+1

    if contador==0:
        detectados=detectados+1
        print('No se cumple para el numero {0:d}'.format(numero))
        print('Por lo que la conjetura tieme un contraejemplo y no es cierta')
        print('Se detecta un caso de inclumplimiento para el numero {0:d} '.format(numero))
        break


print('No se detecta caso de inclumplimiento hasta el numero {0:d} '.format(numero))
#colocamos un input para que no se cierre la ventana del sistema operativo
print('Fin de los calculos pulsa intro para terminar ')
tecla = input()# colocamos un input para que no se cierre la ventana del sistema operativo


tengo que indicar que la comprobación de la primalidad se deja en manos del paquete sympy, concretamente de la funcion isprime ¿?
los códigos los podeis descargar del enlace:

en GitHub








No hay comentarios:

Publicar un comentario