{"id":2184,"date":"2016-03-02T06:00:04","date_gmt":"2016-03-02T04:00:04","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=2184"},"modified":"2022-03-26T12:12:19","modified_gmt":"2022-03-26T10:12:19","slug":"indices-de-numeros-de-fibonacci","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/indices-de-numeros-de-fibonacci\/","title":{"rendered":"\u00cdndices de n\u00fameros de Fibonacci"},"content":{"rendered":"<p>Los primeros t\u00e9rminos de la sucesi\u00f3n de Fibonacci son<\/p>\n<pre lang=\"text\">\n   0, 1, 1, 2, 3, 5, 8, 13, 21, 34\n<\/pre>\n<p>Se observa que el 6\u00ba t\u00e9rmino de la sucesi\u00f3n (comenzando a contar en 0) es el n\u00famero 8.<\/p>\n<p>Definir la funci\u00f3n<\/p>\n<pre lang=\"text\">\n   indiceFib :: Integer -> Maybe Integer\n<\/pre>\n<p>tal que (indiceFib x) es justo el n\u00famero n si x es el n-\u00e9simo t\u00e9rminos de la sucesi\u00f3n de Fibonacci o Nothing en el caso de que x no pertenezca a la sucesi\u00f3n. Por ejemplo,<\/p>\n<pre lang=\"text\">\n    indiceFib 8                                           == Just 6\n    indiceFib 9                                           == Nothing\n    indiceFib 21                                          == Just 8\n    indiceFib 22                                          == Nothing\n    indiceFib 280571172992510140037611932413038677189525  == Just 200\n    indiceFib 123456789012345678901234567890123456789012  == Nothing\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nindiceFib :: Integer -> Maybe Integer\nindiceFib x | y == x    = Just n\n            | otherwise = Nothing\n    where (y,n) = head (dropWhile (\\(z,m) -> z < x) fibsNumerados)\n\n-- fibs es la lista de los t\u00e9rminos de la sucesi\u00f3n de Fibonacci. Por\n-- ejemplo, \n--    take 10 fibs  ==  [0,1,1,2,3,5,8,13,21,34]\nfibs :: [Integer]\nfibs = 0 : 1 : [x+y | (x,y) <- zip fibs (tail fibs)]\n\n-- fibsNumerados es la lista de los t\u00e9rminos de la sucesi\u00f3n de Fibonacci\n-- juntos con sus posiciones. Por ejemplo,\n--    ghci> take 10 fibsNumerados\n--    [(0,0),(1,1),(1,2),(2,3),(3,4),(5,5),(8,6),(13,7),(21,8),(34,9)]\nfibsNumerados :: [(Integer,Integer)]\nfibsNumerados = zip fibs [0..]\n<\/pre>\n<h4>En Maxima<\/h4>\n<pre lang=\"text\">\nindiceFib (n) := block([a:0,b:1,c:1,p:0],\n  unless n <= a do\n   (a : b,\n    b : c,\n    c : a + b,\n    p : p + 1),\n  if n = a\n  then Just (p)\n  else Nothing)$\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Los primeros t\u00e9rminos de la sucesi\u00f3n de Fibonacci son 0, 1, 1, 2, 3, 5, 8, 13, 21, 34 Se observa que el 6\u00ba t\u00e9rmino de la sucesi\u00f3n (comenzando a contar en 0) es el n\u00famero 8. Definir la funci\u00f3n indiceFib :: Integer -> Maybe Integer tal que (indiceFib x) es justo el n\u00famero n&#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":[8,500,59,71,415,11,75,9],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2184"}],"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=2184"}],"version-history":[{"count":4,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2184\/revisions"}],"predecessor-version":[{"id":2214,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/2184\/revisions\/2214"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=2184"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=2184"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=2184"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}