Вопрос

Оптимизируя игру, которую мы разрабатываем, мы сталкиваемся с фазой, где каждый цикл процессора выигрывает. Мы используем радиан для расчетов позиций объектов, круживших вокруг других объектов, и я хочу сократить ненужную точность в моих таблицах поиска. Для этого мы широко используем предопределенный PI. Насколько точным должен быть это PI?

Итак, мой вопрос:

  • Насколько точно точнее?
  • Или даже лучше, Как определить необходимую точность?
Это было полезно?

Решение

С таким же успехом вы можете сделать это таким же точным, как и любое представление с плавающей точкой, которое вы можете хранить. Для выполнения расчетов не займет больше времени, используя более точное число с плавающей точкой того же типа.

Точность обычно измеряется как количество значительных цифр; Вам нужно решить для себя, сколько цифр точности вам интересно. Если вы используете менее точное значение для PI, это неточность этого значения будет распространяться на другие расчеты, в которых он находится.

Другие советы

Для сравнения: я думаю, что НАСА использует PI с точностью 7 десятичных десятиков, чтобы иметь возможность застыть в космосе.

Прежде всего, нам нужно определить, насколько точными должны быть расчеты вашей позиции, то есть, насколько точны формулы в вашей программе, которая зависит от PI. Нам нужно начать там, чтобы узнать, насколько точнее PI вам нужно достичь.

Как только это было определено, вы, вероятно, можете использовать более или менее простой численный анализ, чтобы определить, насколько хороша точность вам нужна для PI. Я могу помочь вам с этим, но мне нужны формулы позиции, чтобы сделать это :)

РЕДАКТИРОВАТЬ: Я подозреваю, что ваши формулы линейно зависят от PI, то есть вы не используете какую -то неясную функцию f (x, y, z, pi), где Pi квадрат или похож. В этом случае точность вашей формулы является фактором, когда и точностью PI, например, K*EPS (PI). В противном случае это в основном фактор, раз, пройдя F, по отношению к PI. Не считая точность всех других параметров F зависит от!

Ваше здоровье !

Это зависит от того, сколько Значительные цифры у вас есть в своем расчете. Учитывая формулу

C = pi * d

Если вы хотите знать, сколько дюймы в окружности круга один миля В диаметре вам понадобится шесть цифр PI, чтобы сохранить точность, которую вы хотите, так как в миле 63 360 дюймов, а в окружности будет 199 051 дюйма. Поскольку в ответе есть шесть важных цифр, мне нужно шесть цифр PI, чтобы рассчитать его до необходимой точности.

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 составляет 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