{"id":5644,"date":"2020-03-04T05:30:28","date_gmt":"2020-03-04T03:30:28","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=5644"},"modified":"2020-03-17T08:17:45","modified_gmt":"2020-03-17T06:17:45","slug":"avistamientos-de-la-pelota","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/avistamientos-de-la-pelota\/","title":{"rendered":"Avistamientos de la pelota"},"content":{"rendered":"<p>Un ni\u00f1o est\u00e1 jugando con una pelota en el noveno piso de un edificio alto. La altura de este piso, h, es conocida. Deja caer la pelota por la ventana. La pelota rebota una r-\u00e9sima parte de su altura (por ejemplo, dos tercios de su altura). Su madre mira por una ventana a w metros del suelo (por ejemplo, a 1.5 metros). \u00bfCu\u00e1ntas veces ver\u00e1 la madre a la pelota pasar frente a su ventana incluyendo cuando est\u00e1 cayendo y rebotando?<\/p>\n<p>Se deben cumplir tres condiciones para que el experimento sea v\u00e1lido:<\/p>\n<ul>\n<li>La altura \u00abh\u00bb debe ser mayor que 0<\/li>\n<li>El rebote \u00abr\u00bb debe ser mayor que 0 y menor que 1<\/li>\n<li>La altura de la ventana debe ser mayor que 0 y menor que h.<\/li>\n<\/ul>\n<p>Definir la funci\u00f3n<\/p>\n<pre lang=\"text\">\n   numeroAvistamientos :: Double -> Double -> Double -> Integer\n<\/pre>\n<p>tal que (numeroAvistamientos h r v) es el n\u00famero de avistamientos de la pelota si se cumplen las tres condiciones anteriores y es -1 en caso contrario. Por ejemplo,<\/p>\n<pre lang=\"text\">\n   numeroAvistamientos 3    0.66 1.5  ==  3\n   numeroAvistamientos 30   0.66 1.5  ==  15\n   numeroAvistamientos (-3) 0.66 1.5  ==  -1\n   numeroAvistamientos 3    (-1) 1.5  ==  -1\n   numeroAvistamientos 3    2    1.5  ==  -1\n   numeroAvistamientos 3    0.5  (-1) ==  -1\n   numeroAvistamientos 3    0.5  4    ==  -1\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.List (genericLength)\n\n-- 1\u00aa soluci\u00f3n\n-- ============\n\nnumeroAvistamientos :: Double -> Double -> Double -> Integer\nnumeroAvistamientos h r v\n  | adecuados h r v = 2 * n - 1 \n  | otherwise      = -1\n  where n = genericLength (takeWhile (>=v) (iterate (*r) h))\n\n-- (adecuados h r v) se verifica si los datos cumplen las condiciones\n-- para que el experimento sea v\u00e1lido.\nadecuados :: Double -> Double -> Double -> Bool\nadecuados h r v =\n  h > 0 && 0 < r &#038;&#038; r < 1 &#038;&#038; 0 < v &#038;&#038; v < h\n\n-- 2\u00aa soluci\u00f3n\n-- ===========\n\nnumeroAvistamientos2 :: Double -> Double -> Double -> Integer\nnumeroAvistamientos2 h r v \n  | adecuados h r v = 2 + numeroAvistamientos2 (h * r) r v\n  | otherwise       = -1\n\n-- 3\u00aa soluci\u00f3n\nnumeroAvistamientos3 :: Double -> Double -> Double -> Integer\nnumeroAvistamientos3 h r v\n  | adecuados h r v = 1 + 2 * floor (logBase r (v \/ h))\n  | otherwise       = -1\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>Pensamiento<\/h4>\n<blockquote><p>\n\u00abLos patrones del matem\u00e1tico, como los del pintor o el poeta deben ser hermosos; las ideas, como los colores o las palabras deben encajar de manera armoniosa. La belleza es la primera prueba: no hay lugar permanente en este mundo para las matem\u00e1ticas feas.\u00bb <\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/G._H._Hardy\">G. H. Hardy<\/a>.\n<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Un ni\u00f1o est\u00e1 jugando con una pelota en el noveno piso de un edificio alto. La altura de este piso, h, es conocida. Deja caer la pelota por la ventana. La pelota rebota una r-\u00e9sima parte de su altura (por ejemplo, dos tercios de su altura). Su madre mira por una ventana a w metros&#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":[282,258,50,314,11,6,34],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5644"}],"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=5644"}],"version-history":[{"count":4,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5644\/revisions"}],"predecessor-version":[{"id":5692,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5644\/revisions\/5692"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=5644"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=5644"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=5644"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}