{"id":4819,"date":"2019-03-13T06:00:30","date_gmt":"2019-03-13T04:00:30","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=4819"},"modified":"2021-04-25T16:22:28","modified_gmt":"2021-04-25T14:22:28","slug":"diagonales-invertidas-2019","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/diagonales-invertidas-2019\/","title":{"rendered":"Diagonales invertidas"},"content":{"rendered":"<p>Definir la funci\u00f3n<\/p>\n<pre lang=\"text\"> \n   diagonalesInvertidas :: Matrix a -> Matrix a\n<\/pre>\n<p>tal que (diagonalesInvertidas q) es la matriz obtenida invirtiendo el<br \/>\norden de los elementos de la diagonal principal y de la diagonal<br \/>\nsecundaria de q. Por ejemplo,<\/p>\n<pre lang=\"text\"> \n   \u03bb> fromList 5 5 [1..]\n   \u250c                \u2510\n   \u2502  1  2  3  4  5 \u2502\n   \u2502  6  7  8  9 10 \u2502\n   \u2502 11 12 13 14 15 \u2502\n   \u2502 16 17 18 19 20 \u2502\n   \u2502 21 22 23 24 25 \u2502\n   \u2514                \u2518\n   \u03bb> diagonalesInvertidas (fromList 5 5 [1..])\n   \u250c                \u2510\n   \u2502 25  2  3  4 21 \u2502\n   \u2502  6 19  8 17 10 \u2502\n   \u2502 11 12 13 14 15 \u2502\n   \u2502 16  9 18  7 20 \u2502\n   \u2502  5 22 23 24  1 \u2502\n   \u2514                \u2518\n   \u03bb> fromList 3 3 ['a','b'..]\n   \u250c             \u2510\n   \u2502 'a' 'b' 'c' \u2502\n   \u2502 'd' 'e' 'f' \u2502\n   \u2502 'g' 'h' 'i' \u2502\n   \u2514             \u2518\n   \u03bb> diagonalesInvertidas (fromList 3 3 ['a','b'..])\n   \u250c             \u2510\n   \u2502 'i' 'b' 'g' \u2502\n   \u2502 'd' 'e' 'f' \u2502\n   \u2502 'c' 'h' 'a' \u2502\n   \u2514             \u2518\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.Matrix\n\ndiagonalesInvertidas :: Matrix a -> Matrix a\ndiagonalesInvertidas q = matrix n n f\n  where n = nrows q\n        f (i,j) | i == j     = q ! (n + 1 - i, n + 1 - i)\n                | i+j == n+1 = q ! (j,i)\n                | otherwise  = q ! (i,j)\n<\/pre>\n<h4>Pensamiento<\/h4>\n<blockquote><p>\nDespertad, cantores:<br \/>\nacaben los ecos,<br \/>\nempiecen las voces.<\/p>\n<p>Antonio Machado\n<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Definir la funci\u00f3n diagonalesInvertidas :: Matrix a -> Matrix a tal que (diagonalesInvertidas q) es la matriz obtenida invirtiendo el orden de los elementos de la diagonal principal y de la diagonal secundaria de q. Por ejemplo, \u03bb> fromList 5 5 [1..] \u250c \u2510 \u2502 1 2 3 4 5 \u2502 \u2502 6 7 8&#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":[42,97,98],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/4819"}],"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=4819"}],"version-history":[{"count":2,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/4819\/revisions"}],"predecessor-version":[{"id":4855,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/4819\/revisions\/4855"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=4819"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=4819"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=4819"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}