{"id":2289,"date":"2016-04-07T06:00:13","date_gmt":"2016-04-07T04:00:13","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=2289"},"modified":"2016-04-14T10:51:37","modified_gmt":"2016-04-14T08:51:37","slug":"numeros-de-lucas","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/numeros-de-lucas\/","title":{"rendered":"N\u00fameros de Lucas"},"content":{"rendered":"<p>Los <a href=\"http:\/\/bit.ly\/1SM8lSD\">n\u00fameros de Lucas<\/a> son los elementos de la sucesi\u00f3n L(n) definida por<\/p>\n<pre lang=\"text\">\n   L(0) = 2\n   L(1) = 1\n   L(n) = L(n-1) + L(n-2), si n > 1.\n<\/pre>\n<p>Los primeros n\u00fameros de Lucas son<\/p>\n<pre lang=\"text\">\n   2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, ...\n<\/pre>\n<p>Definir las funciones<\/p>\n<pre lang=\"text\">\n   nLucas :: Integer -> Integer \n   lucas  :: [Integer]\n<\/pre>\n<p>tales que<\/p>\n<ul>\n<li>(nLucas n) es el n-\u00e9simo n\u00famero de Lucas. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n   nLucas 5                       ==  11\n   nLucas 32                      ==  4870847\n   length (show (nLucas (10^5)))  ==  20899\n<\/pre>\n<ul>\n<li>lucas es la lista de los n\u00fameros de Lucas. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n   take 11 lucas ==  [2,1,3,4,7,11,18,29,47,76,123]\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.List (genericIndex)\n\n-- 1\u00aa definici\u00f3n\n-- =============\n\nnLucas1 :: Integer -> Integer\nnLucas1 0 = 2\nnLucas1 1 = 1\nnLucas1 n = nLucas1 (n-1) + nLucas1 (n-2)\n\nlucas1 :: [Integer]\nlucas1 = [nLucas1 n | n <- [0..]]\n\n-- 2\u00aa definici\u00f3n\n-- =============\n\nlucas2 :: [Integer]\nlucas2 = 2 : 1 : zipWith (+) lucas2 (tail lucas2)\n\nnLucas2 :: Integer -> Integer\nnLucas2 n = lucas2 `genericIndex` n\n\n-- 3\u00aa definici\u00f3n\n-- =============\n\nlucas3  :: [Integer]\nlucas3 = 2 : scanl (+) 1 lucas3\n \nnLucas3 :: Integer -> Integer\nnLucas3 = genericIndex lucas3\n            \n-- Comparaci\u00f3n de eficiencia\n-- =========================\n\n--    \u03bb> nLucas1 32\n--    4870847\n--    (3.22 secs, 1,467,677,208 bytes)\n--    \u03bb> nLucas2 32\n--    4870847\n--    (0.00 secs, 0 bytes)\n--    \u03bb> nLucas3 32\n--    4870847\n--    (0.00 secs, 0 bytes)\n--    \n--    \u03bb> length (show (nLucas2 230000))\n--    48068\n--    (1.57 secs, 2,415,008,392 bytes)\n--    \u03bb> length (show (nLucas3 230000))\n--    48068\n--    (2.08 secs, 2,411,107,352 bytes)\n<\/pre>\n<h4>Soluciones en Maxima<\/h4>\n<pre lang=\"text\">\nnLucas (n) := lucas (n)$\n<\/pre>\n<p>La evaluaci\u00f3n de los ejemplos es<\/p>\n<pre lang=\"text\">\n(%i5) nLucas (5);\n(%o5) 11\n(%i6) nLucas (32);\n(%o6) 4870847\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Los n\u00fameros de Lucas son los elementos de la sucesi\u00f3n L(n) definida por L(0) = 2 L(1) = 1 L(n) = L(n-1) + L(n-2), si n > 1. Los primeros n\u00fameros de Lucas son 2, 1, 3, 4, 7, 11, 18, 29, 47, 76, 123, &#8230; Definir las funciones nLucas :: Integer -> Integer lucas&#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":[5],"tags":[8,256,11,6,45,76],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2289"}],"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=2289"}],"version-history":[{"count":3,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2289\/revisions"}],"predecessor-version":[{"id":2327,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2289\/revisions\/2327"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=2289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=2289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=2289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}