Cálculo de pi mediante la serie de Madhava
El mes de marzo es el mes de pi, ya que el 14 de marzo (3/14) es el día de pi. Con ese motivo, el pasado 1 de marzo se publicó en Twitter un mensaje con la fórmula de Madhava para el cálculo de pi
Definir las funciones
1 2 |
aproximacionPi :: Int -> Double grafica :: Int -> IO () |
tales que
- (aproximacionPi n) es la n-ésima aproximación de pi con la fórmula de Madhava. Por ejemplo,
1 2 3 4 5 6 |
aproximacionPi 0 == 3.4641016151377544 aproximacionPi 1 == 3.0792014356780038 aproximacionPi 2 == 3.156181471569954 aproximacionPi 10 == 3.1415933045030813 aproximacionPi 21 == 3.1415926535879337 pi == 3.141592653589793 |
- (grafica n) dibuja la gráfica de las k-ésimas aproximaciones de pi para k desde 0 a n. Por ejemplo, (grafica 30) dibuja
Soluciones
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
import Graphics.Gnuplot.Simple (Attribute (Key), plotList) aproximacionPi :: Int -> Double aproximacionPi n = sqrt 12 * aux (fromIntegral n) where aux 0 = 1 aux n = aux (n-1) + (-1)**n/(3**n*(2*n+1)) grafica :: Int -> IO () grafica n = plotList [ Key Nothing -- , PNG "Calculo_de_pi_mediante_la_serie_de_Madhava_1.png" ] [aproximacionPi n | n <- [0..n]] |
Nuevas soluciones
- En los comentarios se pueden escribir nuevas soluciones.
- El código se debe escribir entre una línea con <pre lang="haskell"> y otra con </pre>