Anuncio

Colapsar
No hay ningún anuncio todavía.

Conjetura de Goldbach

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • Python Conjetura de Goldbach

    Hace tiempo llevo en mi cabeza tratando de demostrar la conjetura de Goldbach, pero creo que no es posible (es una intuición), entonces me he propuesto demostrar lo contrario, que no es cierto, y si quiero conseguirlo tengo que encontrar un número que no cumpla dicha conjetura, para ello he decidido crear un programa usando python, estoy haciendo la primera versión y es esta:
    Código:
    while True:    a=raw_input("start?")
        if a=="":
            m=4
            z=1
            h=1
            x=0
            k=1
            n=0
            d=1
            while True:
                print m
                while z<m:
                    while h<=z:
                        a=z%h
                        if a==0:
                            x=x+1
                        h=h+1
                    if x==2:
                        o=m-z
                        while k<=o:
                            p=o%k
                            if p==0:
                                n=n+1
                            k=k+1
                        if n==2:
                            print m, "is True"
                            continue
                        else:
                            d=d+1
                            continue
                    else:
                        d=d+1
                        continue
    
    
                    z=z+1
                if d==m:
                    print m, "is false!"
                    break
                m=m+2
    Básicamente lo que hace este programa es ir buscando entre cada número m un número primo menor z que m, una vez lo encuentra calcula si m - z es primo, entonces continúa con el siguiente número m+2 y sigue así hasta que uno no lo cumpla. Lo que pasa es que empiezo el programa y se queda trabado en el 4 haciendo algún cálculo que no sé pero no me da ningún error, así que no sé lo que pasa, si alguien puede echarme una ayuda lo agradezco.

    Saludos,
    Malevoelx
    Última edición por Malevolex; 30/03/2015, 16:57:02.

  • #2
    Re: Conjetura de Goldbach

    Supongo que sabrás que este problema lleva dando quebraderos de cabeza a los matemáticos durante los 3 últimos siglos y que ahora mismo constituye uno de esos problemas del millón que hasta ahora no han sido resueltos ni por los mejores matemáticos dotados con los mejores programas informáticos. Y por otro lado, verificar que se cumple para los primeros n naturales (con n bastante grande) ya se ha hecho, te cito el párrafo que habla de ello en la wikipedia (creo que los exponentes no se ven bien, pero te invito a que le eches un ojo a todas las referencias que hay por internet)

    For small values of n, the strong Goldbach conjecture (and hence the weak Goldbach conjecture) can be verified directly. For instance, Nils Pipping in 1938 laboriously verified the conjecture up to n ≤ 105.[11] With the advent of computers, many more values of n have been checked; T. Oliveira e Silva is running a distributed computer search that has verified the conjecture for n ≤ 4 × 1018 (and double-checked up to 4 × 1017). One record from this search is that 3325581707333960528 is the smallest number that has no Goldbach partition with a prime below 9781.[12]
    No obstante, si lo que intentas hacer es comprobar que se verifica para n pequeñitos (que no demostrar), supongo que es fácil de programar (y no estoy seguro porque nunca lo he intentado) y te invito a que lo pruebes como un entretenimiento/práctica de programación.
    Con respecto a tu programa, no sé de Python y quizá es un poco ilegible con respecto a los nombres de las variables. En programación se suelen usar nombres de las variables más largos para identificarlas, no letras tipo "o,z,m,..." que no dicen nada, y se suele también poner algunos comentarios para saber qué hace cada función a los otros que lo leen (o incluso para ti mismo si lo lees en un tiempo). En cualquier caso me centraré en la idea del programa: Si n es un número natural par, habría que mirar todos los primos menores que él y comprobar uno por uno que su complementario es primo hasta encontrar uno que lo sea para pasar al siguiente par. ¿Es eso lo que hace tu programa?
    [TEX=null]k_BN_A \cdot \dst \sum_{k=0}^{\infty} \dfrac{1}{k!} \cdot 50 \cdot 10_{\text{hex}} \cdot \dfrac{2\pi}{\omega} \cdot \sqrt{-1} \cdot \dfrac{\dd x} {\dd t } \cdot \boxed{^{16}_8\text{X}}[/TEX]

    Comentario


    • #3
      Re: Conjetura de Goldbach

      No me puedo explayar mucho porque tengo problemas con internet. Si se queda calculando significa que ha entrado en un bucle infinito. Revisa bien las condiciones que has puesto.

      Después, ya existen algoritmos que te hacen lo que tu programa de forma mucho más eficiente. De hecho en criptografía se usan algoritmos de estos para comprobar propiedades para muchos primos, para generar primos grandes... Te aconsejo mirártelos (hay muchos, cada uno con sus puntos fuertes) y así de paso aprendes más criptografía.

      Comentario


      • #4
        Re: Conjetura de Goldbach

        Escrito por angel relativamente Ver mensaje
        Supongo que sabrás que este problema lleva dando quebraderos de cabeza a los matemáticos durante los 3 últimos siglos y que ahora mismo constituye uno de esos problemas del millón que hasta ahora no han sido resueltos ni por los mejores matemáticos dotados con los mejores programas informáticos. Y por otro lado, verificar que se cumple para los primeros n naturales (con n bastante grande) ya se ha hecho, te cito el párrafo que habla de ello en la wikipedia (creo que los exponentes no se ven bien, pero te invito a que le eches un ojo a todas las referencias que hay por internet)



        No obstante, si lo que intentas hacer es comprobar que se verifica para n pequeñitos (que no demostrar), supongo que es fácil de programar (y no estoy seguro porque nunca lo he intentado) y te invito a que lo pruebes como un entretenimiento/práctica de programación.
        Con respecto a tu programa, no sé de Python y quizá es un poco ilegible con respecto a los nombres de las variables. En programación se suelen usar nombres de las variables más largos para identificarlas, no letras tipo "o,z,m,..." que no dicen nada, y se suele también poner algunos comentarios para saber qué hace cada función a los otros que lo leen (o incluso para ti mismo si lo lees en un tiempo). En cualquier caso me centraré en la idea del programa: Si n es un número natural par, habría que mirar todos los primos menores que él y comprobar uno por uno que su complementario es primo hasta encontrar uno que lo sea para pasar al siguiente par. ¿Es eso lo que hace tu programa?
        Por supuesto que sé que es uno de los problemas más difíciles por ahora (dicen que el más) pero me lo tomo más como un ejercicio de programación, mi programa hace eso, va mirando cada primo menor que el número dado y comprueba que la resta entre el número dado y el número primo también es primo, si se cumple esto, entonces es correcta la conjetura de goldbach para ese número y sigue al siguiente número y así sucesivamente hasta que encuentre uno que no lo cumpla.

        Le echaré también un vistazo a esos algoritmos pero por ahora me centraré en tratar de encontrar cual es mi fallo en todo el programa y quizá sea necesario que añada unas notas.

        Comentario


        • #5
          Re: Conjetura de Goldbach

          Asi a ojo diria que el bucle con la condicion:
          while z<m:
          nunca finaliza. Debido a que la linea
          z = z + 1
          jamas se ejecuta ya que tienes puestos "continue" en todos los lados, lo que impide al programa llegar a esa linea (un continue hace saltar el programa al principio del bucle al "while").
          Última edición por abuelillo; 30/03/2015, 21:56:28.
           \left\vert{     \Psi_{UNIVERSE}       }\right>  = \sum \alpha_i   \left\vert{     \Psi_{WORLD_i}       }\right> \text{   } \hspace{3 mm}  \sum  \left\vert{} \alpha_i   \right\vert{}^2 = 1

          Comentario

          Contenido relacionado

          Colapsar

          Trabajando...
          X