La conjetura de Levy
Hyman Levy observó que
1 2 3 4 5 6 7 |
7 = 3 + 2 x 2 9 = 3 + 2 x 3 = 5 + 2 x 2 11 = 5 + 2 x 3 = 7 + 2 x 2 13 = 3 + 2 x 5 = 7 + 2 x 3 15 = 3 + 2 x 5 = 11 + 2 x 2 17 = 3 + 2 x 7 = 7 + 2 x 5 = 11 + 2 x 3 = 13 + 2 x 2 19 = 5 + 2 x 7 = 13 + 2 x 3 |
y conjeturó que todos los número impares mayores o iguales que 7 se pueden escribir como la suma de un primo y el doble de un primo. El objetivo de los siguientes ejercicios es comprobar la conjetura de Levy.
Definir las siguientes funciones
1 2 |
descomposicionesLevy :: Integer -> [(Integer,Integer)] graficaLevy :: Integer -> IO () |
tales que
- (descomposicionesLevy x) es la lista de pares de primos (p,q) tales que x = p + 2q. Por ejemplo,
1 2 3 |
descomposicionesLevy 7 == [(3,2)] descomposicionesLevy 9 == [(3,3),(5,2)] descomposicionesLevy 17 == [(3,7),(7,5),(11,3),(13,2)] |
- (graficaLevy n) dibuja los puntos (x,y) tales que x pertenece a [7,9..7+2x(n-1)] e y es el número de descomposiciones de Levy de x. Por ejemplo, (graficaLevy 200) dibuja
Comprobar con QuickCheck la conjetura de Levy.
Soluciones
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
import Data.Numbers.Primes import Test.QuickCheck import Graphics.Gnuplot.Simple descomposicionesLevy :: Integer -> [(Integer,Integer)] descomposicionesLevy x = [(p,q) | p <- takeWhile (< x) (tail primes) , let q = (x - p) `div` 2 , isPrime q] graficaLevy :: Integer -> IO () graficaLevy n = plotList [ Key Nothing , XRange (7,fromIntegral (7+2*(n-1))) , PNG ("La_conjetura_de_Levy-" ++ show n ++ ".png") ] [(x, length (descomposicionesLevy x)) | x <- [7,9..7+2*(n-1)]] -- La propiedad es prop_Levy :: Integer -> Bool prop_Levy x = not (null (descomposicionesLevy (7 + 2 * abs x))) -- La comprobación es -- λ> quickCheck prop_Levy -- +++ OK, passed 100 tests. |
Otras soluciones
- Se pueden escribir otras soluciones en los comentarios.
- El código se debe escribir entre una línea con <pre lang="haskell"> y otra con </pre>
Pensamiento
«Dios creó el número natural, y todo el resto es obra del hombre.»
3 Comentarios