Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: sainax_1 en 27 Mayo 2021, 23:31 pm



Título: Ayuda con c++
Publicado por: sainax_1 en 27 Mayo 2021, 23:31 pm
Necesito ayuda para calcular Pi con un error dado (leido). Es decir cuando la diferencia de (a sub n) - (a sub n-1) sea menor que un error dado.
(El error dado siempre se define entre (0 y 1))
Hice este codigo pero nose como realizar el mismo sin utilzar el void
Código
  1. #include "bits/stdc++.h"
  2. #include <stdlib.h>
  3. #include <stdio.h>
  4. void ValorPi()
  5. {
  6. double pi = 2 * asin(1.0);
  7. printf("%f\n", pi);
  8. }
  9.  
  10. int main()
  11. {ValorPi();
  12. return 0;
  13. }


Título: Re: Ayuda con c++
Publicado por: fzp en 28 Mayo 2021, 19:53 pm
Eso más que calcular Pi es pedirle a la función de biblioteca que lo calcule ella y te diga cuanto vale. ¿Tú que entiendes que quiere decir la parte del enunciado que indica que se calcule con un error determinado que vendrá dado por la diferencia?
an - an-1

Yo entiendo que se pide calcular mediante un proceso de cálculo iterativo de aproximación numérica, de forma que la diferencia entre los diferentes términos de la sucesión -el error- vaya siendo menor, hasta que se alcance un determinado valor del mismo; momento en que se considerará suficientemente bueno el valor calculado de Pi.

Y para eso supongo que os habrán indicado cuál es el método a emplear, o bien os habrán explicado en la materia correspondiente varios métodos para que elijáis alguno a discreción o, al menos, os habrán dicho dónde encontrar por internet métodos  explicados de calcular Pi; como el de Arquímedes, etc. Este último consiste basicamente en aproximar la longitud de la circunferencia por el perímetro de polígonos regulares de un número de lados creciente; aproximando Pi entonces por el cociente perímetro / diámetro. El 'diámetro' sería la distancia entre vértices opuestos, claro. Conforme se consideran polígonos de mayor número de lados el perímetro se aproxima más a la longitud de la circunferencia, y por tanto el cociente se aproxima más a Pi.

Parece que en realidad Arquímedes utilizó polígonos, comenzando por un hexágono regular y, sucesivamente, de 12, 24, 48... etc, lados. Y calculando polígonos inscritos y circunscritos, acotando por arriba y por abajo el valor de Pi. Supongo que porque el problema del algoritmo reside en calcular la longitud del lado del polígono para poder calcular el perímetro. Sabiendo que el lado del hexágono regular es igual al radio de la circunferencia circunscrita, cosa que se sabe por geometría, se puede ir calculando por Pitágoras los lados de los polígonos de -cada vez- número de lados doble que el anterior.

Hoy día se puede hacer directamente con polígonos de cualquier número de lados, ya que la longitud del lado se obtiene fácil por trigonometría.