Pergunta

Estou curioso sobre números infinitos em computação, em particular pi.

Para um computador representar um círculo, ele teria que entender pi.Mas como pode, se é infinito?

Estou olhando muito para isso?Usaria apenas um valor arredondado?

Foi útil?

Solução

Matematicamente, os computadores são finitos e não contínuos e, portanto, não podem conhecer PI completamente, nem representar corretamente um círculo.

No entanto, no mundo digital, nenhum deles existe de qualquer maneira, então é suficiente aproximar o PI e depois usá-lo para renderizar aproximadamente o círculo, resultando exatamente nos mesmos pixels que teriam sido calculados a partir de um PI exato de qualquer maneira.

De qualquer forma, os pixels resultantes não são realmente um círculo também, porque são uma coleção finita de pontos digitais e um círculo é uma curva composta por um número infinito de pontos, a maioria com valores irracionais.

(Foi-me apontado que normalmente PI não é usado para traçar um círculo, o que é verdade, no entanto, os métodos usados ​​para traçar um círculo estão relacionados com as fórmulas usadas para expressar e/ou calcular o valor de PI, que ainda tenho os mesmos problemas).

Outras dicas

Uma aproximação é geralmente suficiente. Para "renderizar" um círculo, o computador só precisa entender o PI bem o suficiente para renderizar com precisão a resolução (finita).

EDIT: Como outros apontaram, você nem precisa de Pi para renderizar um círculo. Ainda assim, a essência da pergunta era "Como os computadores lidam com números como Pi?" Eles usam aproximações e quem estiver usando essas aproximações deve decidir se são precisas o suficiente para o propósito.

Você não precisa de Pi para desenhar um círculo. Existem muitas maneiras de desenhar um círculo. A maneira ingênua é com seno e cosseno.

O algoritmo que vi mais frequentemente em máquinas de 8 bits era Círculo de Bresenham. Você nem precisa de matemática de ponto flutuante para isso.

As linguagens de programação usam uma constante arredondada para PI e números "infinitos" semelhantes.

Para obter uma precisão mais alta, você usa algoritmos iterativos que são loopados pelo tempo que for necessário.

Os computadores apenas usam uma boa aproximação de PI.

Do artigo de MSDN sobre System.math.pi

O valor deste campo é 3.14159265358979323846.

BTW: Pi não é infinito. É irracional, o que significa que possui um número infinito de lugares decimais não repetidos. Existem várias expressões para Pi que são muito curtas. (Veja o Página da Wikipedia para mais detalhes)

Aqui está uma expressão maravilhosamente curta para pi:

PI as Integral

Em algum lugar, vi uma prova de que, para desenhar um círculo ao redor do universo para a precisão do milímetro, você precisaria de menos de 100 dígitos de Pi, em outras palavras, muito menos dígitos do que foram calculados por pessoas com muito tempo em suas mãos (ou Muito poder de computação ...). Agora, se eu pudesse encontrar essa prova ... (editar) encontrei

Eu acredito que o rende a um número muito pequeno e provavelmente é uma constante. Se você usa o PHP, é assim que o PI renderiza:

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

Assim como você só precisa de 3.14159 no ensino médio, os computadores só precisam de muito para obtê -lo bastante preciso.

Uma aproximação geralmente é "boa o suficiente", se você o obtém usando um método de esse site ou outro.

"Renderização" é outra questão. Quando você tem uma resolução de tela finita, um valor perfeito de π não importa tanto.

Atualização: o cálculo pode ser outra questão, diferente da renderização. Algumas aplicações podem exigir maior precisão do que o duplo padrão fornece. Depende do problema.

Os computadores apenas usam valores arredondados de PI, a menos que, é claro, haja um caso especial, como a computação científica. Por exemplo, no Python Pi é representado como:

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

Você pode testar isso por si mesmo em interpreper interativo de Python.

O PI não é infinito, é irracional, o que significa que você não pode expressá -lo como quociente. Tem um número infinito de dígitos.http://en.wikipedia.org/wiki/proof_that_π_is_irrational

Sobre a computação Encontre algumas informações aqui.http://en.wikipedia.org/wiki/computing_π

Boa página também é estahttp://3.1415926535897932384626433832795028841971693993751058209749444592.com/

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top