Существует ли библиотека для простых функций для Python?
Я только что реализовал Miller-Rabin-Test и простую функцию для факторизации чисел. Оба могут быть сделаны лучше, и, по крайней мере, тест Миллера-Рабина хорошо известен.
Не могли бы вы рассказать мне, существует ли Python-библиотека, реализующая такие общие простые функции или почему такая библиотека не существует?
Ответы
Ответ 1
gmpy2 поддерживает множество тестов на псевдослучайность. Тест Миллера-Рабина доступен как gmpy2.is_strong_prp()
.
У gmpy2 еще нет кода факторизации.
Отказ от ответственности: я поддерживаю gmpy2. Тесты первичности основаны на коде от http://sourceforge.net/projects/mpzprp/files/
Ответ 2
Я только что обнаружил isprime
из пакета SymPy:
import sympy
print sympy.isprime(10)
Вывод:
False
Не путать с prime
, который возвращает n-е простое число:
import sympy
print sympy.prime(10)
Вывод:
29
Ответ 3
Я не думаю, что существует такой модуль, посвященный основным функциям в стандартной библиотеке, но, конечно, есть много людей, которые написали тесты на первичность и т.д.
Одна библиотека, предназначенная для арифметики с несколькими точками, но имеющая несколько функций для простых чисел (например, is_prime()
и next_prime()
), GMPY2
. Также доступна документация.
Ответ 4
Если вы ищете реализации алгоритмов, посмотрите Rosetta Code. Веб-сайт имеет множество реализаций в Python. Вы могли бы определенно собрать свою собственную библиотеку для своих личных нужд.
Ответ 5
Prime-Number-Python-Library - это библиотека разработки python. Хорошо подходит для основных функций и очень быстро для больших чисел.