{"id":1982,"date":"2012-03-21T17:14:04","date_gmt":"2012-03-21T17:14:04","guid":{"rendered":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/?p=1982"},"modified":"2013-03-08T05:48:17","modified_gmt":"2013-03-08T05:48:17","slug":"i1m2011-5%c2%ba-examen-de-la-evaluacion-continua","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/i1m2011-5%c2%ba-examen-de-la-evaluacion-continua\/","title":{"rendered":"I1M2011: 5\u00ba examen de la evaluaci\u00f3n continua"},"content":{"rendered":"<p>En la clase de hoy de <a href=\"http:\/\/www.cs.us.es\/~jalonso\/cursos\/i1m-11\">Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas<\/a> se ha realizado el 5\u00ba examen de la evaluaci\u00f3n continua.<\/p>\n<p>\nA continuaci\u00f3n se muestra el examen junto con su soluci\u00f3n:<br \/>\n<!--more--><\/p>\n<pre lang=\"haskell\">\r\n-- Inform\u00e1tica (1\u00ba del Grado en Matem\u00e1ticas)\r\n-- 5\u00ba examen de evaluaci\u00f3n continua (21 de marzo de 2012)\r\n-- ---------------------------------------------------------------------\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 1. [2.5 puntos] Dos n\u00fameros son equivalentes si la media de\r\n-- sus cifras son iguales. Por ejemplo, 3205 y 41 son equvalentes ya que\r\n-- (3+2+0+5)\/4 = (4+1)\/2. Definir la funci\u00f3n \r\n--    equivalentes :: Int -> Int -> Bool\r\n-- tal que (equivalentes x y) se verifica si los n\u00fameros x e y son\r\n-- equivalentes. Por ejemplo,\r\n--    equivalentes 3205 41  ==  True\r\n--    equivalentes 3205 25  ==  False\r\n-- ---------------------------------------------------------------------\r\n\r\nequivalentes :: Int -> Int -> Bool\r\nequivalentes x y = media (cifras x) == media (cifras y)\r\n\r\n-- (cifras n) es la lista de las cifras de n. Por ejemplo,\r\n--    cifras 3205  ==  [3,2,0,5]\r\ncifras :: Int -> [Int]\r\ncifras n = [read [y] | y <- show n]\r\n\r\n-- (media xs) es la media de la lista xs. Por ejemplo,\r\n--    media [3,2,0,5]  ==  2.5\r\nmedia :: [Int] -> Float\r\nmedia xs = (fromIntegral (sum xs)) \/ (fromIntegral (length xs))\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 2. [2.5 puntos] Definir la funci\u00f3n\r\n--    relacionados :: (a -> a -> Bool) -> [a] -> Bool\r\n-- tal que (relacionados r xs) se verifica si para todo par (x,y) de\r\n-- elementos consecutivos de xs se cumple la relaci\u00f3n r. Por ejemplo,\r\n--    relacionados (<) [2,3,7,9]                ==  True\r\n--    relacionados (<) [2,3,1,9]                ==  False\r\n--    relacionados equivalentes [3205,50,5014]  ==  True\r\n-- ---------------------------------------------------------------------\r\n\r\nrelacionados :: (a -> a -> Bool) -> [a] -> Bool\r\nrelacionados r (x:y:zs) = (r x y) && relacionados r (y:zs)\r\nrelacionados _ _ = True\r\n\r\n-- Una definici\u00f3n alternativa es\r\nrelacionados' :: (a -> a -> Bool) -> [a] -> Bool\r\nrelacionados' r xs = and [r x y | (x,y) <- zip xs (tail xs)]\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 3. [2.5 puntos] Definir la funci\u00f3n\r\n--    primosEquivalentes :: Int -> [[Int]]\r\n-- tal que (primosEquivalentes n) es la lista de las sucesiones de n\r\n-- n\u00fameros primos consecutivos equivalentes. Por ejemplo,\r\n--    take 2 (primosEquivalentes 2)  ==  [[523,541],[1069,1087]]\r\n--    head (primosEquivalentes 3)    ==  [22193,22229,22247]\r\n-- ---------------------------------------------------------------------\r\n\r\nprimosEquivalentes :: Int -> [[Int]]\r\nprimosEquivalentes n = aux primos\r\n    where aux (x:xs) | relacionados equivalentes ys = ys : aux xs\r\n                     | otherwise                    = aux xs\r\n                     where ys = take n (x:xs)               \r\n\r\n-- primos es la lista de los n\u00fameros primos. \r\nprimos :: [Int]\r\nprimos = criba [2..]\r\n    where criba :: [Int] -> [Int]\r\n          criba (p:xs) = p : criba [x | x <- xs, x `mod` p \/= 0]\r\n\r\n-- ---------------------------------------------------------------------\r\n-- Ejercicio 4. [2.5 puntos] Los polinomios pueden representarse\r\n-- de forma dispersa o densa. Por ejemplo, el polinomio\r\n-- 6x^4-5x^2+4x-7 se puede representar de forma dispersa por\r\n-- [6,0,-5,4,-7] y de forma densa por [(4,6),(2,-5),(1,4),(0,-7)]. \r\n-- Definir la funci\u00f3n \r\n--    densa :: [Int] -> [(Int,Int)]\r\n-- tal que (densa xs) es la representaci\u00f3n densa del polinomio cuya\r\n-- representaci\u00f3n dispersa es xs. Por ejemplo, \r\n--   densa [6,0,-5,4,-7]  ==  [(4,6),(2,-5),(1,4),(0,-7)]\r\n--   densa [6,0,0,3,0,4]  ==  [(5,6),(2,3),(0,4)]\r\n-- ---------------------------------------------------------------------\r\n\r\ndensa :: [Int] -> [(Int,Int)]\r\ndensa xs = [(x,y) | (x,y) <- zip [n-1,n-2..0] xs, y \/= 0]\r\n    where n = length xs\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En la clase de hoy de Inform\u00e1tica de 1\u00ba del Grado en Matem\u00e1ticas se ha realizado el 5\u00ba examen de la evaluaci\u00f3n continua. A continuaci\u00f3n se muestra el examen junto con su soluci\u00f3n:<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","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":[1],"tags":[295],"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\/1982"}],"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=1982"}],"version-history":[{"count":4,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/1982\/revisions"}],"predecessor-version":[{"id":2837,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/posts\/1982\/revisions\/2837"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/media?parent=1982"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/categories?post=1982"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/vestigium\/wp-json\/wp\/v2\/tags?post=1982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}