{"id":1419,"date":"2011-06-24T06:29:18","date_gmt":"2011-06-24T06:29:18","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=1419"},"modified":"2011-06-24T06:29:18","modified_gmt":"2011-06-24T06:29:18","slug":"un-problema-de-las-olimpiadas-rusas-en-haskell","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/un-problema-de-las-olimpiadas-rusas-en-haskell\/","title":{"rendered":"Un problema de las olimpiadas rusas en Haskell"},"content":{"rendered":"<p>En el blog <a href=\"http:\/\/simplementenumeros.blogspot.com\">N\u00fameros y algo m\u00e1s<\/a> plantean hoy <a href=\"http:\/\/simplementenumeros.blogspot.com\/2011\/06\/714-un-problema-de-las-olimpiadas-rusas.html\">un problema de las olimpiadas rusas<\/a> cuyo enunciado es el siguiente<\/p>\n<blockquote><p>\nSi escribimos todos los n\u00fameros enteros empezando por el uno, uno al lado del otro (o sea, 1234567891011121314&#8230;), \u00bfqu\u00e9 d\u00edgito ocupa la posici\u00f3n 206788?\n<\/p><\/blockquote>\n<p>Bas\u00e1ndome en este problema he escrito la siguiente relaci\u00f3n de ejercicios de Haskell para la asignatura de <a href=\"http:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m-10\">Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas<\/a> como ejemplo de uso de cadenas infinitas.<br \/>\n<!--more--><\/p>\n<pre lang=\"haskell\">\r\n-- ---------------------------------------------------------------------\r\n-- Librer\u00eda auxiliar                                                  --\r\n-- ---------------------------------------------------------------------\r\n\r\nimport Data.Char\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 1. Definir la constante\r\n--    cadenaDeNaturales :: String\r\n-- tal que cadenaDeNaturales es la cadena obtenida escribiendo todos los\r\n-- n\u00fameros enteros empezando por el uno. Por ejemplo,\r\n--    take 19 cadenaDeNaturales  ==  \"1234567891011121314\"\r\n-- ---------------------------------------------------------------------\r\n\r\ncadenaDeNaturales :: String\r\ncadenaDeNaturales = concat [show n | n <- [1..]]\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 2. Definir la funci\u00f3n\r\n--    digito :: Int -> Int\r\n-- tal que (digito n) es el d\u00edgito que ocupa la posici\u00f3n n en la cadena\r\n-- de los naturales (el n\u00famero de las posiciones empieza por 1). Por\r\n-- ejemplo, \r\n--    digito 10  ==  1\r\n--    digito 11  ==  0\r\n-- ---------------------------------------------------------------------\r\n\r\ndigito :: Int -> Int\r\ndigito n = digitToInt (cadenaDeNaturales !! (n-1))\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 3. Calcular el d\u00edgito que ocupa la posici\u00f3n 206788 en la\r\n-- cadena de los naturales.\r\n-- ---------------------------------------------------------------------\r\n\r\n-- El c\u00e1lculo es \r\n--   ghci> digito 206788\r\n--   7\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En el blog N\u00fameros y algo m\u00e1s plantean hoy un problema de las olimpiadas rusas cuyo enunciado es el siguiente Si escribimos todos los n\u00fameros enteros empezando por el uno, uno al lado del otro (o sea, 1234567891011121314&#8230;), \u00bfqu\u00e9 d\u00edgito ocupa la posici\u00f3n 206788? Bas\u00e1ndome en este problema he escrito la siguiente relaci\u00f3n de ejercicios&#8230;<\/p>\n","protected":false},"author":2,"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":[270],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":false,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/1419"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/comments?post=1419"}],"version-history":[{"count":1,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/1419\/revisions"}],"predecessor-version":[{"id":1420,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/1419\/revisions\/1420"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=1419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=1419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=1419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}