2012-06-11 4 views
12

Я только что внедрил Miller-Rabin-Test и простую функцию для факторизации чисел. Оба могут быть сделаны лучше, и, по крайней мере, тест Миллера-Рабина хорошо известен.Существует ли библиотека для простых функций для Python?

Не могли бы вы рассказать мне, существует ли библиотека Python, реализующая такие общие простые функции или почему такая библиотека не существует?

ответ

9

gmpy2 поддерживает различные тесты псевдоприва. Тест Miller-Rabin доступен как gmpy2.is_strong_prp().

gmpy2 еще не указал код генерации кода.

Отказ от ответственности: Я являюсь сторонником gmpy2. Тесты primality основаны на коде от http://sourceforge.net/projects/mpzprp/files/

1

Я не думаю, что в стандартной библиотеке существует такой модуль, посвященный основным функциям, но, конечно, есть много людей, которые написали тесты на первичность и т. Д.

Одна библиотека, предназначенная для арифметики с несколькими точками, но имеющая несколько функций для простых чисел (таких как is_prime() и next_prime()), является GMPY2. Также доступен documentation.

0

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

+1

Я явно не ищу реализации. Я уже реализовал код, но обычно предпочитаю загружать функцию из модуля, который был рассмотрен, а не писать сам, особенно если это то, что хорошо известно, как Миллер-Рабин. –

9

Я только что обнаружил isprime от SymPy package:

import sympy 
print sympy.isprime(10) 

Выход:

False 

Не путать с prime, который возвращает п-е простое число:

import sympy 
print sympy.prime(10) 

Выход:

29 
0

Prime-Number-Python-Library является в библиотеке разработки питона. Хорошо подходит для основных функций и очень быстро для больших чисел.

Смежные вопросы