Как определить точность Pi (π)
оптимизация игры, которую мы разрабатываем, мы запускаемся в фазу, где каждый цикл процессора выиграл. Мы используем радианы для вычисления положения объектов, кружащих вокруг других объектов, и я хочу сократить ненужную точность в моих таблицах поиска. Для этого мы активно используем предопределенный Pi. насколько точным должен быть этот Pi?
Итак, мой вопрос:
- насколько точно достаточно точно?
- или даже лучше, Как определить необходимую точность?
8 ответов
вы можете просто сделать его таким же точным, как и любое представление с плавающей запятой, которое вы можете сохранить. Это не займет больше времени для выполнения вычислений с использованием более точного числа с плавающей запятой того же типа.
точность обычно измеряется как количество значимых цифр; вам нужно будет решить для себя, сколько цифр точности вас интересует. Если вы используете менее точное значение для pi, неточность этого значения будет распространяться на другие вычисления в.
для сравнения: я думаю, что NASA использует pi с точностью до 7 десятичных знаков, чтобы иметь возможность стыковки в космос.
прежде всего нам нужно определить, насколько точными должны быть ваши вычисления позиции, т. е. насколько точными должны быть формулы в вашей программе, которая зависит от pi. Нам нужно начать там, чтобы знать, насколько точно pi вам нужно достичь этого.
Как только это было определено, вы можете использовать более или менее прямой численный анализ для определения как хорошая точность вам нужна для ИП. Я могу помочь вам в этом, но мне нужны формулы позиции для этого:)
Edit: я подозреваю, что ваши формулы линейно зависят от pi,т. е. вы не используете какую-то неясную функцию f(x,y,z, pi), где pi квадрат или аналогичный. В этом случае точность вашей формулы является фактором, умноженным на точность pi, например k*eps(pi). В противном случае это в основном коэффициент, умноженный на производную f относительно pi. Не считая точности всех остальных параметры f зависят от !
Ура !
Это зависит от того, сколько значащих цифр у вас есть в вашем расчете. Учитывая формулу
C = pi * d
Если вы хотите знать, как много дюймов в окружности круга один дальше в диаметре вам понадобится шесть цифр pi, чтобы сохранить точность, которую вы хотите, так как есть 63,360 дюймов в миле, и будет 199,051 дюймов в окружности. Поскольку в ответе есть шесть значащих цифр, I нужно шесть цифр 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 не имеет никакого значения. Важным является размер таблицы поиска, и вы, конечно, предварительно вычислить его с максимально возможной точностью. Дальнейшая точность не требует дополнительного времени выполнения, кроме того, вы думаете об изменении типа данных с single на double.
Если вы предварительно вычисляете значение, сделайте его максимально точным для хранения, но чтобы получить истинное представление о том, какая точность на самом деле нужна, вы должны посмотреть на свои формулы и точность других компонентов и убедиться, что точность, которую вы имеете для pi, соответствует другим компонентам. Численный анализ даст вам plaenty подсказок.
Библия говорит, что значение 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.0 E+10000000 для успеха калькулятора вам необходимо установить netframework2.0