Pregunta

Tengo curiosidad por los números infinitos en la computación, en particular PI.

Para que una computadora represente un círculo, tendría que entender Pi. Pero, ¿cómo puede si es infinito?

¿Estoy buscando demasiado en esto? ¿Simplemente usaría un valor redondeado?

¿Fue útil?

Solución

Matemáticamente, las computadoras son finitas y no continuas y, por lo tanto, no pueden conocer PI por completo, ni renderizar correctamente un círculo.

Sin embargo, en el ámbito digital ninguno de estos existe de todos modos, por lo que es suficiente aproximar el PI y luego usarlo para representar aproximadamente el círculo, lo que resulta en exactamente los mismos píxeles que de todos modos se habrían calculado a partir de una PI exacta.

De cualquier manera, los píxeles resultantes no son De Verdad Un círculo, porque son una colección finita de puntos digitales y un círculo es una curva compuesta por un número infinito de puntos, la mayoría con valores irracionales.

(Se me ha señalado que PI no se usa normalmente para trazar un círculo, lo cual es cierto, sin embargo, los métodos utilizados para trazar un círculo están relacionados con las fórmulas utilizadas para expresar y/o calcular el valor de PI, que todavía tienen los mismos problemas).

Otros consejos

Una aproximación es generalmente suficiente. Para "renderizar" un círculo, la computadora solo necesita comprender PI lo suficientemente bien como para renderizar con precisión la resolución (finita) que se requiere.

EDITAR: Como otros han señalado, ni siquiera necesita Pi para que rinde un círculo. Aún así, la esencia de la pregunta era "¿Cómo lidian las computadoras con números como Pi?" Usan aproximaciones, y quien esté usando esas aproximaciones debe decidir si son lo suficientemente precisos para el propósito dado.

No necesitas Pi en absoluto para dibujar un círculo. Hay muchas formas de dibujar un círculo. La forma ingenua es con seno y coseno.

El algoritmo que vi con más frecuencia en máquinas de 8 bits fue Círculo de Bresenham. Ni siquiera necesitas matemáticas de punto flotante para eso.

Los lenguajes de programación usan una constante redondeada para PI y números similares "infinitos".

Para obtener una mayor precisión, usa algoritmos iterativos que se bucle durante el tiempo que sea necesario.

Las computadoras solo usan una buena aproximación de PI.

Del artículo de MSDN en System.math.pi

El valor de este campo es 3.14159265358979323846.

Por cierto: Pi no es infinito. Es irracional, lo que significa que tiene un número infinito de lugares decimales no repetidos. Hay varias expresiones para PI que son muy cortas. (Ver el Página de Wikipedia para más detalles)

Aquí hay una expresión maravillosamente corta para PI:

PI as Integral

En algún lugar, vi una prueba de que para dibujar un círculo alrededor del universo a la precisión del milímetro, necesitaría menos de 100 dígitos de Pi, en otras palabras, muchos menos dígitos de los que han calculado las personas con demasiado tiempo en sus manos (o Demasiada potencia informática ...). Ahora, si tan solo pudiera encontrar esa prueba ... (editar) Lo encontré

Creo que lo redondea a un número muy pequeño, y lo más probable es que sea una constante. Si usa PHP, así es como Pi Renders:

echo pi(); // 3.1415926535898
echo M_PI; // 3.1415926535898

Al igual que solo necesita 3.14159 en la escuela secundaria, las computadoras solo necesitan tanto para obtenerlo bastante preciso.

Una aproximación a menudo es "lo suficientemente buena", ya sea que lo consigas usando un método de este sitio o otro.

"Renderizar" es otro asunto. Cuando tiene una resolución de pantalla finita, un valor perfecto de π no importa tanto.

ACTUALIZACIÓN: El cálculo podría ser otra cuestión, diferente de la representación. Algunas aplicaciones pueden requerir una mayor precisión que el doble estándar. Depende del problema.

Las computadoras solo usan valores redondeados de PI, a menos que, por supuesto, haya un caso especial, como la computación científica. Por ejemplo, en Python Pi se representa como:

>>> import math
>>> math.pi
3.1415926535897931

Puede probar esto por usted mismo en el intérprete interactivo inactivo, Pythons.

Pi no es infinito, es irracional, lo que significa que no puedes expresarlo como cociente. Tiene un número infinito de dígitos.http://en.wikipedia.org/wiki/proof_that_π_is_irrational

Acerca de la informática Encuentra algunas información aquí.http://en.wikipedia.org/wiki/Computing_π

Bonita página también es estahttp://3.141592653589793238462643383279502884197169399375105820974944592.com/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top