valor significado para obtiene numero niños historia ejemplos completo como caracteristicas calcular algorithm math pi

algorithm - significado - ¿Cómo se calcula pi(π)?



significado del numero pi (12)

¿Estás dispuesto a buscar valores en lugar de calcularlos?

Como no especificó explícitamente que su función tiene que calcular valores, aquí hay una posible solución si está dispuesto a tener un límite superior en la cantidad de dígitos que puede "calcular" :

// Initialize pis as far out as you want. // There are lots of places you can look up pi out to a specific # of digits. double pis[] = {3.0, 3.1, 3.14, 3.141, 3.1416}; /* * A function that returns pi out to a number of digits (up to a point) */ double CalcPi(int x) { // NOTE: Should add range checking here. For now, do not access past end of pis[] return pis[x]; } int main() { // Loop through all the values of "pi at x digits" that we have. for (int ii=0; ii<(int)sizeof(pis)/sizeof(double); ii++) { double piAtXdigits = CalcPi(ii); } }

Escribir CalcPi () de esta manera (si satisface tus necesidades) tiene un beneficio adicional de ser igual de rápido gritando por cualquier valor de X dentro de tu límite superior.

¿Cómo puedo escribir una función que devolverá pi (π) a un número dado de decimales?

La velocidad no es una preocupación. He estado viendo http://bellard.org/pi/ , pero todavía no entiendo cómo obtener el enésimo dígito de pi.


" π EN EL SET DE MANDELBROT " explora la curiosa relación entre una secuencia de puntos en el plano complejo y cómo se calcula su "número de Mandelbrot" (a falta de un término mejor ... el número de iteraciones necesarias para determinar que los puntos en la secuencia no son miembros del conjunto de Mandelbrot) se relaciona con PI.

¿Práctico? Probablemente no.

Inesperado e interesante? Creo que si.



Comenzaría con la fórmula

pi = 16 arctan (1/5) - 4 arctan (1/239)

Google encontrará fácilmente una prueba de esta fórmula que los seres humanos normales pueden entender, y una fórmula para calcular la función de arco tangente. Esto le permitirá calcular algunos miles de dígitos decimales de pi con bastante facilidad y rapidez.


Como alternativa al método de JeffH de almacenar cada variación, puede almacenar la cantidad máxima de dígitos y cortar lo que no necesita:

#include <string> #include <iostream> using std::cout; using std::endl; using std::string; // The first 99 decimal digits taken from: // http://www.geom.uiuc.edu/~huberty/math5337/groupe/digits.html // Add more as needed. const string pi = "1415926535" "8979323846" "2643383279" "5028841971" "6939937510" "5820974944" "5923078164" "0628620899" "8628034825" "342117067"; // A function in C++ that returns pi to X places string CalcPi(const size_t decimalDigitsCount) { string returnValue = "3"; if (decimalDigitsCount > 0) { returnValue += "." + pi.substr(0, decimalDigitsCount); } return returnValue; } int main() { // Loop through all the values of "pi at x digits" that we have. for (size_t i = 0; i <= pi.size(); ++i) { cout << "pi(" << i << "): " << CalcPi(i) << endl; } }

http://codepad.org/6mqDa1zj


Considere esto como un boceto, pero es un enfoque sencillo que un principiante podría implementar.

int x = 9; double pi = double(22/7); String piAsString = pi.toString(); String valueAtXPosition = piAsString.subString(x, x+1); int valueAtXPosAsInt = Integer.parseInt(valueAtXPosition);


Creo que el algoritmo que está buscando es lo que se conoce como un "Algoritmo de espiga". Un tipo particular es la fórmula BBP (Bailey-Borwein-Plouffe).

Creo que eso es lo que estás buscando.


En cálculo, hay una cosa llamada Taylor Series que proporciona una manera fácil de calcular muchos valores irracionales con precisión arbitraria.

Pi / 4 = 1 - 1/3 + 1/5 - 1/7 + ...
(de http://www.math.hmc.edu/funfacts/ffiles/30001.1-3.shtml )

Siga sumando esos términos hasta que se estabilice el número de dígitos de precisión que desea.

El teorema de Taylor es una herramienta poderosa, pero la derivación de esta serie usando el teorema está más allá del alcance de la pregunta. Es un cálculo universitario estándar de primer año y es fácilmente googleable si está interesado en más detalles.

No quise dar a entender que este es el método más práctico para calcular pi. Eso dependería de por qué realmente necesitas hacerlo. Para fines prácticos, solo debe copiar tantos dígitos como necesite de una de las muchas versiones publicadas. Estaba sugiriendo esto como una simple introducción de cómo los valores irracionales se pueden equiparar con series infinitas.




Puede indicar la precisión según el último término que agregó (o restó). Dado que la amplitud de cada término en la secuencia de Alan siempre está disminuyendo y cada término se alterna en el signo, la suma no cambiará más que el último término.

Traduciendo ese balbuceo: Después de agregar 1/5, la suma no cambiará más de 1/5, por lo que tiene una precisión de 1/5. Por supuesto, tendrás que multiplicar esto por 4, por lo que realmente solo precisas 4/5.

Desafortunadamente, las matemáticas no siempre se traducen fácilmente en dígitos decimales.


pi = function () { let pi = 3; let a = 3; let even = false; let turn; while (a <= 90000) { turn = (4/((Math.pow(a, 3)) - (a))); if(even){ turn = turn*-1; even = false; } else { even = true; } pi = pi + turn; a = a + 2; } return pi; };