我对计算中的无限数字感到好奇,特别是pi。
要让计算机渲染一个圆圈,就必须了解pi。但如果它是无限的又怎么样呢?
我是否对此过分了解?它只是使用舍入值吗?
答案 0 :(得分:15)
数学上,计算机既有限也有非连续,因此既不能完全知道PI,也不能正确地渲染圆。
然而,在数字领域中,无论如何都不存在这些,所以只需对PI进行近似然后使用它来近似渲染圆就足够了,从而产生与从精确PI计算的完全相同的像素。
无论哪种方式,结果像素也不是真正一个圆圈,因为它们是数字点的有限集合,而圆是由无数个点组成的曲线,大多数都是非理性的价值观。
(有人指出,PI通常不用于绘制圆形,这是正确的,但是,用于绘制圆形的方法与用于表示和/或计算圆形的公式有关。 PI,仍有相同的问题)。
答案 1 :(得分:7)
近似值通常就足够了。为了“渲染”一个圆,计算机只需要很好地理解pi,以便在需要的任何分辨率(有限)下准确地渲染。
编辑:正如其他人所指出的那样,你甚至不需要pi来渲染一个圆圈。不过,问题的关键是“计算机如何处理像pi这样的数字?”他们使用近似值,无论谁使用这些近似值,都必须确定它们是否足够精确以满足特定目的。
答案 2 :(得分:5)
根本不需要PI来绘制圆圈。绘制圆圈的方法有很多种。天真的方式是正弦和余弦。
我在8位计算机上经常看到的算法是Bresenham's circle。你甚至不需要浮点数学。
答案 3 :(得分:2)
计算机只是使用了很好的近似值。
来自MSDN关于System.Math.PI
的文章顺便说一句:PI不是无限的。它是不合理的,意味着它具有无限数量的非重复小数位。 PI的几个表达式非常短。 (有关详细信息,请参阅Wikipedia page)此字段的值为 3.14159265358979323846。
以下是PI的简短表达:
答案 4 :(得分:2)
编程语言对pi和类似的“无限”数字使用舍入常量。
为了获得更高的精度,您可以使用迭代算法,只要需要就可以循环使用。
答案 5 :(得分:2)
在某个地方,我看到了一个证据,即在宇宙周围绘制一个圆到毫米的精度,你需要不到100位数的pi,换句话说,数字远远少于人们计算时间过长的数字。手(或太多的计算能力......)。现在,如果我能找到那个证明......(编辑)found it
答案 6 :(得分:1)
我认为它将它变为非常小的数字,并且很可能是常数。如果您使用PHP,这就是PI呈现的方式:
echo pi(); // 3.1415926535898 echo M_PI; // 3.1415926535898
就像你在高中只需要3.14159一样,计算机只需要这么多才能让它相当准确。
答案 7 :(得分:1)
计算机只使用pi的舍入值,除非有特殊情况,例如科学计算。例如,在python中pi表示为:
>>> import math
>>> math.pi
3.1415926535897931
你可以在IDLE,pythons交互式解释器中自己测试一下。
答案 8 :(得分:1)
无论是使用this site还是another one中的方法得到它,近似值通常都“足够好”。
“渲染”是另一回事。当你有一个有限的屏幕分辨率时,完美的π值并不重要。
更新:计算可能是另一个问题,与渲染不同。某些应用程序可能需要比标准double给出的更高的精度。这取决于问题。
答案 9 :(得分:1)
Pi不是无限的,它是无理的,是什么意思,你不能把它表达为商。它有无限的数字。 http://en.wikipedia.org/wiki/Proof_that_π_is_irrational
关于计算在这里查找一些信息。 http://en.wikipedia.org/wiki/Computing_π
不错的页面也是这样 http://3.141592653589793238462643383279502884197169399375105820974944592.com/