{"id":6188,"date":"2021-03-19T06:00:19","date_gmt":"2021-03-19T04:00:19","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=6188"},"modified":"2021-03-26T09:29:49","modified_gmt":"2021-03-26T07:29:49","slug":"calculo-de-pi-mediante-la-formula-de-beeler","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/calculo-de-pi-mediante-la-formula-de-beeler\/","title":{"rendered":"C\u00e1lculo de pi mediante la f\u00f3rmula de Beeler"},"content":{"rendered":"<p>El pasado 12 de marzo se public\u00f3 en Twitter un <a href=\"https:\/\/bit.ly\/3tcKdQg\">mensaje<\/a> con una f\u00f3rmula de Beeler para el c\u00e1lculo de pi<br \/>\n<a href=\"https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Beeler.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Beeler.png?resize=955%2C137\" alt=\"\" width=\"955\" height=\"137\" class=\"aligncenter size-full wp-image-6189\" srcset=\"https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Beeler.png?w=955&amp;ssl=1 955w, https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Beeler.png?resize=300%2C43&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Beeler.png?resize=768%2C110&amp;ssl=1 768w\" sizes=\"(max-width: 955px) 100vw, 955px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>Los primeros valores son<\/p>\n<pre lang=\"text\">\n   \u03bb> 2*1\n   2\n   \u03bb> 2*(1+1\/3)\n   2.6666666666666665\n   \u03bb> 2*(1+1\/3+(1*2)\/(3*5))\n   2.933333333333333\n   \u03bb> 2*(1+1\/3+(1*2)\/(3*5)+(1*2*3)\/(3*5*7))\n   3.0476190476190474\n   \u03bb> 2*(1+1\/3+(1*2)\/(3*5)+(1*2*3)\/(3*5*7)+(1*2*3*4)\/(3*5*7*9))\n   3.098412698412698\n<\/pre>\n<p>Definir las funciones<\/p>\n<pre lang=\"text\">\n   aproximacionPi :: Int -> Double\n   grafica        :: [Int] -> IO ()\n<\/pre>\n<p>tales que<\/p>\n<ul>\n<li>(aproximacionPi n) es la n-\u00e9sima aproximaci\u00f3n de pi con la f\u00f3rmula de Beeler. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     aproximacionPi 0    ==  2.0\n     aproximacionPi 1    ==  2.6666666666666665\n     aproximacionPi 2    ==  2.933333333333333\n     aproximacionPi 3    ==  3.0476190476190474\n     aproximacionPi 4    ==  3.098412698412698\n     aproximacionPi 10   ==  3.141106021601377\n     aproximacionPi 100  ==  3.1415926535897922\n     pi                  ==  3.141592653589793\n<\/pre>\n<ul>\n<li>(grafica xs) dibuja la gr\u00e1fica de las k-\u00e9simas aproximaciones de pi para k en xs. Por ejemplo, (grafica [0..99]) dibuja<br \/>\n<a href=\"https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Beeler_1.png\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Beeler_1.png?resize=640%2C480\" alt=\"\" width=\"640\" height=\"480\" class=\"aligncenter size-full wp-image-6190\" srcset=\"https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Beeler_1.png?w=640&amp;ssl=1 640w, https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Beeler_1.png?resize=300%2C225&amp;ssl=1 300w\" sizes=\"(max-width: 640px) 100vw, 640px\" data-recalc-dims=\"1\" \/><\/a><\/li>\n<\/ul>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Graphics.Gnuplot.Simple (Attribute (Key, PNG), plotList)\n\naproximacionPi :: Int -> Double\naproximacionPi n =\n  aproximacionesPi !! n\n\naproximacionesPi :: [Double]\naproximacionesPi =\n  map (*2) (scanl1 (+) (1 : scanl1 (*) [(x\/y) | (x,y) <- zip [1..] [3,5..]]))\n\n\n-- Gr\u00e1fica\n-- =======\n\ngrafica :: [Int] -> IO ()\ngrafica xs =\n  plotList [ Key Nothing\n           -- , PNG \"Calculo_de_pi_mediante_la_formula_de_Beeler_1.png\"\n           ]\n           [(k,aproximacionPi k) | k <- xs]\n<\/pre>\n<h4>Nuevas soluciones<\/h4>\n<ul>\n<li>En los comentarios se pueden escribir nuevas soluciones.\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","protected":false},"excerpt":{"rendered":"<p>El pasado 12 de marzo se public\u00f3 en Twitter un mensaje con una f\u00f3rmula de Beeler para el c\u00e1lculo de pi Los primeros valores son \u03bb> 2*1 2 \u03bb> 2*(1+1\/3) 2.6666666666666665 \u03bb> 2*(1+1\/3+(1*2)\/(3*5)) 2.933333333333333 \u03bb> 2*(1+1\/3+(1*2)\/(3*5)+(1*2*3)\/(3*5*7)) 3.0476190476190474 \u03bb> 2*(1+1\/3+(1*2)\/(3*5)+(1*2*3)\/(3*5*7)+(1*2*3*4)\/(3*5*7*9)) 3.098412698412698 Definir las funciones aproximacionPi :: Int -> Double grafica :: [Int] -> IO () tales&#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":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/6188"}],"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=6188"}],"version-history":[{"count":2,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/6188\/revisions"}],"predecessor-version":[{"id":6221,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/6188\/revisions\/6221"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=6188"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=6188"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=6188"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}