优化我们正在开发的游戏,我们进入了每个CPU周期赢得计数的阶段。我们使用弧度来计算围绕其他物体圆圈的对象计算,我想在查找表中剪切不必要的准确性。为此,我们大量使用预定义的PI。 这个PI应该多么准确?

所以,我的问题是:

  • 准确的准确性足够准确?
  • 甚至更好 如何确定所需的准确性?
有帮助吗?

解决方案

您也可以将其与您可以存储的任何浮点表示一样准确。使用更准确的浮点数相同类型的浮点数不需要更长的时间。

通常将精度作为显着数字的数量来衡量;您需要自己决定您感兴趣的准确性数字数量。如果您对PI的准确值较低,则该值的不准确性将传播到其所在的其他计算中。

其他提示

作为比较:我认为NASA使用具有7个小数的PI精度,以便能够将其停靠到太空中。

首先,我们需要确定您的位置计算需要的准确性,即您程序中取决于PI必须是的公式的准确性。我们需要从那里开始,以了解您需要多么准确才能实现这一目标。

一旦确定,您可能可以使用或多或少直接的数值分析来确定PI所需的良好精度。我可以为您提供帮助,但是我需要位置公式来做到这一点:)

编辑:我怀疑您的公式是线性依赖于PI的,即您不使用某些模糊功能f(x,y,z,pi),其中pi是平方或类似的。在这种情况下,公式的准确性是PI准确性的一个因素,例如K*EPS(PI)。否则,这基本上是F相对于PI的衍生物的一个因素。不计算所有其他参数F的准确性F取决于!

欢呼!

这取决于多少 重要的数字 您有计算。给定公式

c = pi * d

如果您想知道多少 英寸 在一个圆的圆周中 英里 在直径上,您需要六位PI来保持所需的准确性,因为一英里内有63,360英寸,并且周长将有199,051英寸。由于答案中有六个重要的数字,因此我需要六位数字来计算其所需的准确性。

3.14 * 63,360 = 198950.4

3.142 * 63,360 = 199077.12

3.1416 * 63,360 = 199051.776

3.14159 * 63,360 = 199051.1424

如您所见,在这种情况下,我得到了正确的答案,只有5位PI数字,但情况并非总是如此。您至少需要PI的数字数量,与您有大量数字 确保 你有足够的精度。

如果您预先计算并存储它,则可以在系统上使用数学库来尽可能准确地计算它。一个不错的选择是:

double PI = (16.0 * atan(1/5)) - (4.0 * atan(1/239));

这将为您提供相当准确的PI价值,您可以在启动时计算并根据需要重复使用。比容易重复使用的版本很难获得更准确的版本。

目前尚不清楚您在做什么。您是根据一个角度查找坐标吗?在这种情况下,PI的准确性根本无关紧要。重要的是查找表的大小,您当然会以最高的准确性进行预估。进一步的准确性不需要额外的执行时间,除了您正在考虑将数据类型从单一更改为双倍。

如果您要预先计算该值,则可以使其准确地存储,但要获得真正需要的准确性的感觉PI适合其他组件。数值分析将为您提供很多线索。

圣经说PI的价值为3(关联)。因此,您当然应该使用它:)

PI的新公式

Pi=2.m.sin(90/m)

Pi=3.m.sin(60/m)

Pi=4.m.sin(45/m)

Pi=5.m.sin(36/m)

对于pi免费计算器XP的数百万美元,XM,…..推荐M = 1.0E+10000000,您需要安装NetFrameWork2.0的计算器的成功。

http://harry-j-smith-memorial.com/index.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top