{"id":1452,"date":"2015-05-14T06:00:38","date_gmt":"2015-05-14T04:00:38","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=1452"},"modified":"2015-06-13T16:35:11","modified_gmt":"2015-06-13T14:35:11","slug":"visibilidad-de-listas-y-matrices","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/visibilidad-de-listas-y-matrices\/","title":{"rendered":"Visibilidad de listas y matrices"},"content":{"rendered":"<p>La <strong>visibilidad de una lista<\/strong> es el n\u00famero de elementos que son estrictamente mayores que todos los anteriores. Por ejemplo, la visibilidad de la lista [1,2,5,2,3,6] es 4.<\/p>\n<p>La <strong>visibilidad de una matriz<\/strong> P es el par formado por las visibilidades de las filas de P y las visibilidades de las columnas de P. Por ejemplo, dada la matriz<\/p>\n<pre lang=\"text\"> \n       ( 4 2 1 )\n   Q = ( 3 2 5 )\n       ( 6 1 8 )\n<\/pre>\n<p>la visibilidad de Q es ([1,2,2],[2,1,3]).<\/p>\n<p>Definir las funciones<\/p>\n<pre lang=\"text\"> \n   visibilidadLista  :: [Int] -> Int\n   visibilidadMatriz :: Matrix Int -> ([Int],[Int])\n<\/pre>\n<p>tales que<\/p>\n<ul>\n<li>(visibilidadLista xs) es la visibilidad de la lista xs. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\"> \n     visibilidadLista [1,2,5,2,3,6]   ==  4\n     visibilidadLista [0,-2,5,1,6,6]  ==  3\n<\/pre>\n<ul>\n<li>(visibilidadMatriz p) es la visibilidad de la matriz p. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\"> \n     ghci> visibilidadMatriz (fromLists [[4,2,1],[3,2,5],[6,1,8]])\n     ([1,2,2],[2,1,3])\n     ghci> visibilidadMatriz (fromLists [[0,2,1],[0,2,5],[6,1,8]])\n     ([2,3,2],[2,1,3])\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.List (inits)\nimport Data.Matrix (Matrix, (!), nrows, ncols, fromLists)\n\nvisibilidadLista :: [Int] -> Int\nvisibilidadLista xs =\n    length [x | (ys,x) <- zip (inits xs) xs, all (<x) ys]\n\nvisibilidadMatriz :: Matrix Int -> ([Int],[Int])\nvisibilidadMatriz p =\n    ([visibilidadLista [p ! (i,j) | j <- [1..n]] | i <- [1..m]],\n     [visibilidadLista [p ! (i,j) | i <- [1..m]] | j <- [1..n]])\n     where m = nrows p\n           n = ncols p\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>La visibilidad de una lista es el n\u00famero de elementos que son estrictamente mayores que todos los anteriores. Por ejemplo, la visibilidad de la lista [1,2,5,2,3,6] es 4. La visibilidad de una matriz P es el par formado por las visibilidades de las filas de P y las visibilidades de las columnas de P. Por&#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\/1452"}],"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=1452"}],"version-history":[{"count":3,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1452\/revisions"}],"predecessor-version":[{"id":1520,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1452\/revisions\/1520"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=1452"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=1452"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=1452"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}