Я пишу Python3 (64-разрядную) программу для вычисления числа не менее миллиона цифр с использованием модуля gmpy2 в 64-разрядной Windows 10. Я использую алгоритм Чудновского.Арифметика серии гениальна, проста в применении и проста в реализации.У меня проблема с представлением вещественных чисел очень большой точности с помощью gmpy2.
Я свел эту проблему к очень простому тесту.
- Проверьте системные ограничения gmpy2.Они выглядят великолепно.
- Задайте контекст точности, необходимый для числа с пиром в миллионах.
- Присвойте строковую переменную с числом цифр в пи.
- Присвойте переменной mpfr преобразование строкиспользуя mpfr ('миллионная цифра числа пи')
- Распечатайте строковую переменную, она имеет миллион цифр.
- Напечатайте mpfr, который имеет чуть более 300 000 цифр.
Когда я конвертирую mpfr в строку и печатаю, я получаю аналогичные результаты.
Что здесь происходит, и как мне выжать точность в миллион цифр из gmpy2?
import gmpy2 # Get the gmpy2 library
print('max_precision =', gmpy2.get_max_precision())
print('emin_min =', gmpy2.get_emin_min())
print('emax_max =', gmpy2.get_emax_max())
gmpy2.get_context().precision = 1000000 + 3 # Set the precision context.
print(gmpy2.get_context())
million_string = 'million digits of pi. I didn't paste it here but you can get it from Eve Andersson's website here, http://www.eveandersson.com/pi/digits/1000000, you'll need to strip out the newlines'
print('string =', million_string)
million_pi = gmpy2.mpfr(million_string)
print('\n\nHere comes the mpfr...\n\n')
print(million_pi)
В моих выходных данных я получаю напечатанные max, mins, context, строку pi из миллиона цифр и первые 300 000 (дать или взять) цифр числа pi.Я бы хотел показать вам именно вывод, но система обвиняет мой красиво отформатированный вывод в коде и не позволит мне сделать это.Я не могу найти способ обойти это.