{"id":6136,"date":"2021-03-09T06:00:12","date_gmt":"2021-03-09T04:00:12","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=6136"},"modified":"2021-03-16T08:31:25","modified_gmt":"2021-03-16T06:31:25","slug":"sucesion-de-rowland","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/sucesion-de-rowland\/","title":{"rendered":"Sucesi\u00f3n de Rowland"},"content":{"rendered":"<p>Definir las siguientes sucesiones<\/p>\n<pre lang=\"text\">\n   sucesionA       :: [Integer]\n   sucesionB       :: [Integer]\n   sucesionRowland :: [Integer]\n<\/pre>\n<p>tales que<\/p>\n<ul>\n<li>el t\u00e9rmino n-\u00e9simo de la sucesionA es a(n) definido por a(1) = 7 y a(n) = a(n-1) + mcd(n, a(n-1)), para n > 1. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 20 sucesionA\n     [7,8,9,10,15,18,19,20,21,22,33,36,37,38,39,40,41,42,43,44]\n<\/pre>\n<ul>\n<li>los t\u00e9rminos de la sucesionB son las diferencias de los t\u00e9rminos consecutivos de la sucesionA. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     \u03bb> take 30 sucesionB\n     [1,1,1,5,3,1,1,1,1,11,3,1,1,1,1,1,1,1,1,1,1,23,3,1,1,1,1,1,1,1]\n<\/pre>\n<ul>\n<li>los t\u00e9rminos de la sucesionRowland son los t\u00e9rminos de la sucesionB distintos de 1. Por ejemplo,\\0<\/li>\n<\/ul>\n<pre lang=\"text\">\n      \u03bb> take 20 sucesionRowland\n      [5,3,11,3,23,3,47,3,5,3,101,3,7,11,3,13,233,3,467,3]\n      \u03bb> sucesionRowland !! 92\n      15567089\n<\/pre>\n<p>Comprobar con QuickCheck que los elementos de la sucesionRowland son n\u00fameros primos.<\/p>\n<p>Nota: Eric S. Rowland demostr\u00f3 en <a href=\"https:\/\/arxiv.org\/abs\/0710.3217\">A natural prime-generating recurrence<\/a> que los elementos de la sucesionRowland son n\u00fameros primos.<\/p>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.Numbers.Primes (isPrime)\nimport Test.QuickCheck (Property, (==>), quickCheck)\n\nsucesionA :: [Integer]\nsucesionA =\n   7 : zipWith (+) sucesionA (zipWith gcd sucesionA [2..])\n\nsucesionB :: [Integer]\nsucesionB = zipWith (-) (tail sucesionA) sucesionA\n\nsucesionRowland :: [Integer]\nsucesionRowland =  filter (> 1) sucesionB\n\n-- La propiedad es\nprop_sucesionRowland :: Int -> Property\nprop_sucesionRowland n =\n  n >= 0 ==> isPrime (sucesionRowland !! n)\n\n-- La comprobaci\u00f3n es\n--    \u03bb> quickCheck prop_sucesionRowland\n--    +++ OK, passed 100 tests.\n<\/pre>\n<h4>Nuevas soluciones<\/h4>\n<ul>\n<li>En los comentarios se pueden escribir nuevas soluciones.\n<li>El c\u00f3digo se debe escribir entre una l\u00ednea con &#60;pre lang=&quot;haskell&quot;&#62; y otra con &#60;\/pre&#62;\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Definir las siguientes sucesiones sucesionA :: [Integer] sucesionB :: [Integer] sucesionRowland :: [Integer] tales que el t\u00e9rmino n-\u00e9simo de la sucesionA es a(n) definido por a(1) = 7 y a(n) = a(n-1) + mcd(n, a(n-1)), para n > 1. Por ejemplo, \u03bb> take 20 sucesionA [7,8,9,10,15,18,19,20,21,22,33,36,37,38,39,40,41,42,43,44] los t\u00e9rminos de la sucesionB son las diferencias de&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false},"categories":[4],"tags":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/6136"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/comments?post=6136"}],"version-history":[{"count":3,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/6136\/revisions"}],"predecessor-version":[{"id":6193,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/6136\/revisions\/6193"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=6136"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=6136"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=6136"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}