Как определить точность Pi (π) - PullRequest
7 голосов
/ 20 мая 2009

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

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

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

Ответы [ 8 ]

18 голосов
/ 20 мая 2009

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

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

6 голосов
/ 20 мая 2009

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

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

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

Редактировать: Я подозреваю, что ваши формулы линейно зависят от числа пи, т.е. вы не используете какую-то непонятную функцию f (x, y, z, pi), где число в квадрате или подобное. В этом случае точность вашей формулы в 1 раз больше точности, например, K * EPS (пи). В противном случае это в основном фактор, умноженный на производную от f по отношению к пи. Без учета точности всех остальных параметров f зависит от!

Ура!

3 голосов
/ 20 мая 2009

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

C = pi * d

если вы хотите узнать, сколько дюймов в окружности круга диаметром миля , вам потребуется шесть цифр числа пи, чтобы сохранить необходимую точность, так как в миле их 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 цифрами числа Пи, но это не всегда будет так. Вам нужно как минимум столько же цифр числа пи, сколько значащих цифр, чтобы гарантировало, что у вас достаточно точности.

1 голос
/ 20 мая 2009

Если вы предварительно рассчитали и сохранили его, вы можете просто использовать математическую библиотеку в своей системе, чтобы вычислить ее один раз с максимально возможной точностью. Хороший вариант:

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

Это даст вам довольно точное значение для PI, которое вы можете вычислить при запуске и использовать по мере необходимости. Трудно получить более точную версию, чем ту, которую легко использовать повторно.

0 голосов
/ 18 августа 2012

новая формула для пи

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 free калькулятор XP, XM,… .. порекомендуйте m = 1.0E + 10000000 для успеха калькулятора, вам необходимо установить netframework2.0

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

0 голосов
/ 20 мая 2009

Библия говорит, что значение Пи равно 3 ( ссылка ). Так что, конечно, вы должны просто использовать это :)

0 голосов
/ 20 мая 2009

Если вы предварительно рассчитываете значение, сделайте его как можно более точным для хранения, но чтобы получить истинное представление о том, какая точность действительно необходима, вам нужно взглянуть на свои формулы и точность других компонентов, а затем убедиться в точности у вас есть для пи совпадает, что для других компонентов. Численный анализ даст вам множество подсказок.

0 голосов
/ 20 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...