Для удовольствия я пытаюсь реализовать алгоритм Чудновского для вычисления pi в java с использованием библиотеки точности с плавающей запятой произвольной точности. Меня поражает то, что мне нужно вычислить обратную цифру 1/n, так как формула описывается как 1/pi = sum (...)Точность взаимности в арифметике с плавающей запятой
Сколько значащих цифр/цифр точности нужно число с плавающей запятой n, чтобы 1/n имела желаемую точность? Есть ли легкий ответ на это? Я попытался сделать некоторые вычисления, например, 1/0,100009999999 = 9.99900010009, чтобы определить обратное значение 0,1 с пятью правильными цифрами после десятичной точки. Я вижу, что если я беру первые три цифры после десятичной точки, и вокруг результата получаю правильное значение 10, но существует ли общее правило, сколько цифр верно после операции 1/n? Меня также интересует тот же результат, но в двоичных и шестнадцатеричных базах.
Пробовал поиск в Google и быстрый поиск в Stackoverflow, но не нашел ответа на этот вопрос. Извините, если существует дубликат.
Для pi (как между 1 и 10) он должен находиться в пределах одной цифры. Таким образом, чтобы получить точность в тысячу цифр, вам понадобится точность до 1001 цифр по взаимной. Вам нужно точно знать? Вы все равно получаете оценочную стоимость в конце точности, так что одна цифра здесь или там вряд ли имеет значение? Я надеюсь, что вы ничего не тестируете, используя встроенные значения double/float на любом языке ... –
Благодарим вас за ввод. Каким будет общий ответ для числа n, которое не является pi (поскольку pi не находится между 1 и 10 в базе 2)? Нет, я не использую встроенный двойной/плавающий. Я буду использовать либо встроенный BigDecimal, либо apfloat – user1661303