{"id":6173,"date":"2021-03-16T06:00:34","date_gmt":"2021-03-16T04:00:34","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=6173"},"modified":"2021-03-23T09:42:56","modified_gmt":"2021-03-23T07:42:56","slug":"calculo-de-pi-mediante-la-formula-de-bauer","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/calculo-de-pi-mediante-la-formula-de-bauer\/","title":{"rendered":"C\u00e1lculo de pi mediante la f\u00f3rmula de Bauer"},"content":{"rendered":"<p>El pasado 10 de marzo se public\u00f3 en Twitter un <a href=\"https:\/\/bit.ly\/3qMjRmV\">mensaje<\/a> con una <a href=\"https:\/\/bit.ly\/30AJqN2\">f\u00f3rmula de Bauer<\/a> 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_Bauer.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_Bauer.png?resize=557%2C100\" alt=\"\" width=\"557\" height=\"100\" class=\"aligncenter size-full wp-image-6174\" srcset=\"https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Bauer.png?w=557&amp;ssl=1 557w, https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Bauer.png?resize=300%2C54&amp;ssl=1 300w\" sizes=\"(max-width: 557px) 100vw, 557px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p>Los primeros valores son<\/p>\n<pre lang=\"text\">\n   \u03bb> 2\/1\n   2.0\n   \u03bb> 2\/(1 - 5*(1\/2)^3)\n   5.333333333333333\n   \u03bb> 2\/(1 - 5*(1\/2)^3 + 9*((1*3)\/(2*4))^3)\n   2.354022988505747\n   \u03bb> 2\/(1 - 5*(1\/2)^3 + 9*((1*3)\/(2*4))^3 - 13*((1*3*5)\/(2*4*6))^3)\n   4.416172506738545\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 Bauer. Por ejemplo,<\/li>\n<\/ul>\n<pre lang=\"text\">\n     aproximacionPi 0         ==  2.0\n     aproximacionPi 1         ==  5.333333333333333\n     aproximacionPi 2         ==  2.354022988505747\n     aproximacionPi 3         ==  4.416172506738545\n     aproximacionPi (10^2)    ==  2.974407762733626\n     aproximacionPi (10^2+1)  ==  3.3277148010019233\n     aproximacionPi (10^3)    ==  3.0865454975585744\n     aproximacionPi (10^3+1)  ==  3.1986099487445463\n     aproximacionPi (10^4)    ==  3.1239682112773868\n     aproximacionPi (10^4+1)  ==  3.1594161911246594\n     aproximacionPi (10^5)    ==  3.135997665507836\n     aproximacionPi (10^5+1)  ==  3.147207613460776\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_Bauer_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_Bauer_1.png?resize=640%2C480\" alt=\"\" width=\"640\" height=\"480\" class=\"aligncenter size-full wp-image-6175\" srcset=\"https:\/\/i0.wp.com\/www.glc.us.es\/~jalonso\/exercitium\/wp-content\/uploads\/2021\/03\/Calculo_de_pi_mediante_la_formula_de_Bauer_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_Bauer_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\/)\n      (scanl1 (+)\n              (zipWith (*)\n                       [fromIntegral ((-1)^n*(4*n+1))| n <- [0..]]\n                       (1 : scanl1 (*) [(x\/y)^3 | (x,y) <- zip [1,3..] [2,4..]])))\n\n-- Gr\u00e1fica\n-- =======\n\ngrafica :: [Int] -> IO ()\ngrafica xs =\n  plotList [ Key Nothing\n           -- , PNG \"Calculo_de_pi_mediante_la_formula_de_Bauer_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 10 de marzo se public\u00f3 en Twitter un mensaje con una f\u00f3rmula de Bauer para el c\u00e1lculo de pi Los primeros valores son \u03bb> 2\/1 2.0 \u03bb> 2\/(1 &#8211; 5*(1\/2)^3) 5.333333333333333 \u03bb> 2\/(1 &#8211; 5*(1\/2)^3 + 9*((1*3)\/(2*4))^3) 2.354022988505747 \u03bb> 2\/(1 &#8211; 5*(1\/2)^3 + 9*((1*3)\/(2*4))^3 &#8211; 13*((1*3*5)\/(2*4*6))^3) 4.416172506738545 Definir las funciones aproximacionPi :: Int&#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\/6173"}],"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=6173"}],"version-history":[{"count":6,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/6173\/revisions"}],"predecessor-version":[{"id":6218,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/6173\/revisions\/6218"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=6173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=6173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=6173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}