La sucesión de Sylvester

La sucesión de Sylvester es la sucesión que comienza en 2 y sus restantes términos se obtienen multiplicando los anteriores y sumándole 1.

Definir las funciones

tales que

  • (sylvester n) es el n-ésimo término de la sucesión de Sylvester. Por ejemplo,

  • (graficaSylvester d n) dibuja la gráfica de los d últimos dígitos de los n primeros términos de la sucesión de Sylvester. Por ejemplo,
    • (graficaSylvester 3 30) dibuja
      La_sucesion_de_Sylvester_(3,30)
    • (graficaSylvester 4 30) dibuja
      La_sucesion_de_Sylvester_(4,30)
    • (graficaSylvester 5 30) dibuja
      La_sucesion_de_Sylvester_(5,30)

Soluciones

6 Comentarios

    1. El resto de funciones me han salido igual, pero la definición de sylvester así es algo más eficiente (y bastante más corta):

      1. Las otras dos funciones también me han salido igual En la de Sylvester he combinado la de Jorge con programación dinámica y mejora el tiempo.

  1. — Sucesión de Sylvester

    import Graphics.Gnuplot.Simple

    sylvester :: Integer -> Integer
    sylvester 0 = 2
    sylvester n = sylvester m ^ 2 – sylvester m + 1
    where m = n – 1

    — λ> sylvester 8
    — 12864938683278671740537145998360961546653259485195807
    — (0.01 secs, 354,528 bytes)

    ultimosDigitos :: Integer -> Integer -> Integer
    ultimosDigitos n y = y mod(10^n)

    listaGrafica n = map (ultimosDigitos n) (map sylvester [0..])

    graficaSylvester :: Integer -> Integer -> IO ()
    graficaSylvester n d = plotList [Key Nothing]
    (take (fromInteger d) (listaGrafica n))

  2. Un intento de definición usando coq,

    y la prueba de que a partir del 2 todos los términos de la sucesión son impares.

Leave a Reply to albcarcas1Cancel reply