elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Sacar decimales al Número PI
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Sacar decimales al Número PI  (Leído 8,865 veces)
Komodo


Desconectado Desconectado

Mensajes: 352



Ver Perfil
Sacar decimales al Número PI
« en: 25 Abril 2010, 18:34 pm »

Ya esta todo EXPLICADO, buscaba un código sobre como conseguir decimales del número PI, algún algoritmo, algo matemático, si no hay code, al menos información de como se puede sacar.

Graci.as.


En línea


do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Sacar decimales al Número PI
« Respuesta #1 en: 25 Abril 2010, 18:46 pm »

¡Buenas!

En este momento no tengo ninguna formula a mano, pero el desarrollo en serie de potencias de las funciones arcoseno, arcocoseno y arcotangente, al ser evaluada en algun punto en concreto, suele dar buenas aproximaciones de pi.

Por ejemplo, puedes obtener aproximaciones de pi evaluando la serie de Taylor de la funcion arcoseno en 1 (sen(Pi/2) = 1 -> arcsen(1) = pi/2), arcocoseno en 0  (cos(pi/2) = 0 -> arccos(0) = pi/2), arctg (tg(pi/4) = 1, atg(1) = pi/4)... Ademas, tienes diversas formas de expresar el resto de la aproximacion de un polinomio de Taylor a una funcion (restos de cauchy, de lagrange...) de esta forma para un grado n del polinomio que utilices puedes calcular el error que estas cometiendo al aproximar dicho valor, y por lo tanto, podras saber que grado tiene que tener el polinomio para obtener un error menor que un valor dado.

¡Saludos!

Otra alternativ la tienes en el calculo de probabilidades:

Considera un cuadrado de lado 2, y la circunferencia maxima contenida en el (popr lo tanto de radio 1). Si generas un punto aleatorio dentro del cuadrado, al estar en un espacio de probabilidad geometrico, la probabilidad de que el punto este dentro del ciculo sera: superficie_circulo/superficie_cuadrado = (Pi * r2) / 22 = Pi/4

Ahora pasas de la probabilidad a la estadistica. Tomas un cuadrado de lado 2, generas N puntos de forma aleatoria dentro de el y contabilizas en n los que estan dentro de la circunferencia. La frecuencia relativa, n/N, de los punos interiores a la cicunferencia tiene que aproximarse por tanto a Pi/4...

Y para terminar tienes la Santa Wikipedia en la que informacion no te va a faltar.


« Última modificación: 25 Abril 2010, 19:07 pm por do-while » En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Komodo


Desconectado Desconectado

Mensajes: 352



Ver Perfil
Re: Sacar decimales al Número PI
« Respuesta #2 en: 25 Abril 2010, 22:04 pm »

Gracias haber si encuentro +info
En línea


Komodo


Desconectado Desconectado

Mensajes: 352



Ver Perfil
Re: Sacar decimales al Número PI
« Respuesta #3 en: 25 Abril 2010, 22:22 pm »

Busco también el modo más exacto, pues 377/120 puede servir pero no quiero que de periodo.

Tambien me gusta esto:



Pero sin duda lo que voy a usar es esto.
En línea


biribau

Desconectado Desconectado

Mensajes: 181


Ver Perfil
Re: Sacar decimales al Número PI
« Respuesta #4 en: 25 Abril 2010, 23:27 pm »

El problema es que para evaluar funciones trigonométricas necesitas aproximaciones, de hecho creo que así se implementan en el ordenador, pues si quieres aplicar el método de Newton derivas y siempre obtienes otra trigonométrica(ademas el ordenador usa esas tablas de aproximaciones basados en cómputos previos con pi ya conocido). La probabilística es buena idea, eso es lo del método Monte Carlo no?.
Un método exacto determinístico:
Creo que es el que usaban los antiguos, la aproximacion al perímetro o área por polígonos circunscritos/inscritos. Simplemente vas añadiendo lados y pi queda en el medio de los "pi's" de los 2 polígonos, no es eficiente pero puedes sacar el numero de decimales que quieras sin error, aunque también recuerdo haber visto sucesiones o expresiones más sencillas.
En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Sacar decimales al Número PI
« Respuesta #5 en: 25 Abril 2010, 23:30 pm »

Pues si buscas exactitud, te recomiendo los desarrolos de Taylor con restos de las funciones trigonometricas inversas que te he dicho, ya que partiendo del resto (que te indica el error) puedes obtener el grado del polinomio que te hace falta para cometer un error mas pequeño que cualquier numero que te propongas. Lo malo es el desarrollo de Taylor de dichas series, ya que se trata de calcular las derivadas sucesivas de las funciones, y hay que ser cuidadoso. Si me das tiempo, a ver si desarrollo alguna y te lo dejo por aqui.

¡Saludos!

Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje.
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Tha_Traker

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Sacar decimales al Número PI
« Respuesta #6 en: 29 Abril 2010, 17:32 pm »

Fuente: http://stackoverflow.com/questions/19/fastest-way-to-get-value-of-pi (La página está en ingles.

El código fuente esta colgado en la página esa.

Este es otro método que converge rápidamente (~ 14digits por iteración), la aplicación actual es más rápido PiFast utiliza esta fórmula con la FFT. Voy a escribir la fórmula, ya que el código es muy sencillo. Esta fórmula la encontró  Ramanujan y fue descubierto por Chudnovsky. Es como logro calcular varios miles de millones dígitos del número de - por lo que  es un método a tener en cuenta. La fórmula se desbordará rápidamente, ya que estamos dividiendo factoriales, sería ventajoso para el cálculo de dicha demora para eliminar términos.



k1 = 545140134; k2 = 13591409; k3 = 640320; k4 = 100100025; k5 = 327843840; k6 = 53360;

A continuación se muestra el algoritmo de Brent-Salamín. Wikipedia dice que cuando a y b son "lo suficientemente cerca" entonces (a + b) ^ 2/4t será una aproximación de pi. No estoy seguro de lo que significa "lo suficientemente cerca", sino de mis pruebas, una iteración tiene 2 dígitos, dos tienen 7, y tres tenían 15, por supuesto, esto es con habitaciones dobles, por lo que podría error han basado en su representación y el ' verdadero 'cálculo podría ser
más exactos.

Es solo una alternativa a lo que han dicho.

Un saludo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sacar la potencia de un numero sin pow en C
Programación C/C++
meaf75 1 11,184 Último mensaje 4 Septiembre 2016, 10:31 am
por class_OpenGL
Sacar titular de un numero
Hacking
999tokyo 6 569 Último mensaje 11 Mayo 2022, 16:42 pm
por Danielㅤ
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines