Итак, формула Лейбница для числа пи: пи/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9... Я не могу понять, как использовать эту формулу в Java. Мне просто нужна помощь в том, как включить в него вторую часть. Я знаю, что мне нужен цикл, и мне нужна переменная делителя, и каждый раз ей нужно плюс 2. Спасибо за любую помощь.
Формула Лейбница для числа пи - Java
01.10.2013
- Я не хочу давать вам решение. На каждом шаге вашего цикла вы добавляете
(+/-)1/(2*i+1)
, гдеi
— это переменная цикла for. Что тут сложного? 01.10.2013 - Я предлагаю вам написать как можно больше и включить это в вопрос. Я предлагаю оценивать два выражения одновременно. Это будет немного быстрее и будет иметь меньшую ошибку округления. Кстати, вы также можете рассчитать PI вместо PI/4. 01.10.2013
Ответы:
1
Как подсказка, это оптимизированная версия
long start = System.nanoTime();
double pi = 0;
for (int i = 1; i < 1000000000; i += 4) {
pi += 8.0 / (i * (i + 2L));
}
long time = System.nanoTime() - start;
System.out.println(pi + " took " + time / 1000000 / 1e3 + " secs.");
отпечатки
3.1415926445762157 took 1.217 secs.
Если вы измените этот цикл так, чтобы он выполнялся в обратном направлении, а не в прямом, вы получите более точный результат. Это более точно, так как большие числа, добавленные в конце, скрывают часть накопленной ошибки округления для меньших значений.
3.141592651589793 took 1.222 secs.
Значение должно быть 3,14159265359.
01.10.2013
2
Цикл for
должен выглядеть примерно так:
double sum=0;
double sign=1.0;
for(int i =1;i<=limit;i+=2)
{
sum+=sign/i;
sign* =-1;
}
01.10.2013
if
. 01.10.2013 Новые материалы
Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..
Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально
Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..
Частный метод Python: улучшение инкапсуляции и безопасности
Введение
Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..
Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования
Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..
Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv)
Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..
Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..
Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..