{"id":1391,"date":"2015-04-28T06:00:25","date_gmt":"2015-04-28T04:00:25","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=1391"},"modified":"2015-05-05T10:05:03","modified_gmt":"2015-05-05T08:05:03","slug":"colinealidad-de-una-lista-de-puntos","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/colinealidad-de-una-lista-de-puntos\/","title":{"rendered":"Colinealidad de una lista de puntos"},"content":{"rendered":"<p>Una colecci\u00f3n de puntos son colineales si existe una l\u00ednea recta tal que todos est\u00e1n en dicha l\u00ednea. Por ejemplo, los puntos (2,1), (5,7), (4,5) y (20,37) son colineales porque pertenecen a la l\u00ednea  y = 2*x-3.<\/p>\n<p>Definir la funci\u00f3n<\/p>\n<pre lang=\"text\">\n   colineales :: [(Int,Int)] -> Bool\n<\/pre>\n<p>tal que (colineales ps) se verifica si los puntos de la lista ps son colineales. Por ejemplo,<\/p>\n<pre lang=\"text\">\n   colineales [(2,1),(5,7),(4,5),(20,37)]  ==  True\n   colineales [(2,1),(5,7),(4,5),(21,37)]  ==  False\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\n-- 1\u00aa definici\u00f3n\ncolineales1 :: [(Int,Int)] -> Bool\ncolineales1 ((x1,y1):(x2,y2):xys) =\n    all (\\(x,y) -> (x-x1)*dy == (y-y1)*dx) xys\n    where (dx,dy) = (x2-x1,y2-y1)\ncolineales1 _ = True\n\n-- 2\u00aa definici\u00f3n\ncolineales2 :: [(Int,Int)] -> Bool\ncolineales2 ((x,y):xys) = all (\\(dx',dy')-> dx'*dy == dy'*dx) ds \n    where ((dx,dy):ds) = [(x'-x,y'-y) | (x',y') <- xys]\n\n-- 3\u00aa definici\u00f3n\ncolineales3 :: [(Int,Int)] -> Bool\ncolineales3 ((x1,y1):(x2,y2):xys) =\n    all (\\(x,y) -> x*dy-y*dx == k) xys\n    where (dx,dy,k) = (x2-x1,y2-y1,x1*dy-y1*dx)\ncolineales3 _ = True\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Una colecci\u00f3n de puntos son colineales si existe una l\u00ednea recta tal que todos est\u00e1n en dicha l\u00ednea. Por ejemplo, los puntos (2,1), (5,7), (4,5) y (20,37) son colineales porque pertenecen a la l\u00ednea y = 2*x-3. Definir la funci\u00f3n colineales :: [(Int,Int)] -> Bool tal que (colineales ps) se verifica si los puntos de&#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":[41,8,11],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1391"}],"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=1391"}],"version-history":[{"count":4,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1391\/revisions"}],"predecessor-version":[{"id":1421,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1391\/revisions\/1421"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=1391"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=1391"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=1391"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}