{"id":5706,"date":"2020-03-19T05:30:55","date_gmt":"2020-03-19T03:30:55","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=5706"},"modified":"2020-03-26T07:57:38","modified_gmt":"2020-03-26T05:57:38","slug":"diagonales-invertidas","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/diagonales-invertidas\/","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 orden de los elementos de la diagonal principal y de la diagonal secundaria 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<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>Otras soluciones<\/h4>\n<ul>\n<li>Se pueden escribir otras soluciones en los comentarios.\n<li>El c\u00f3digo se debe escribir entre una l\u00ednea con &#60;pre lang=&quot;haskell&quot;&#62; y otra con &#60;\/pre&#62;\n<\/ul>\n<h4>Soluciones<\/h4>\n<h4>Pensamiento<\/h4>\n<blockquote><p>\n\u00abNo estamos muy contentos cuando nos vemos obligados a aceptar una verdad matem\u00e1tica en virtud de una complicada cadena de conclusiones formales y c\u00e1lculos, que atravesamos a ciegas, eslab\u00f3n por eslab\u00f3n, sintiendo nuestro camino por el tacto. Queremos primero una visi\u00f3n general del objetivo y del camino; queremos entender la idea de la prueba, el contexto m\u00e1s profundo.\u00bb <\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Hermann_Weyl\">Hermann Weyl<\/a>.\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":[4],"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\/5706"}],"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=5706"}],"version-history":[{"count":2,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5706\/revisions"}],"predecessor-version":[{"id":5737,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5706\/revisions\/5737"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=5706"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=5706"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=5706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}