Фаллен (ky0uraku) wrote,
Фаллен
ky0uraku

Category:
  • Music:

числа Мерсенна на пальцах, ч. 2

итак, с лирическим отступлением покончено, пришло время разобраться, что, собственно, вообще происходит?

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

первые простые числа Мерсенна были найдены давным-давно, ещё вручную. а вот потом, когда количество цифр в ПЧМ перевалило за сотню, разумеется, стало понятно, что без ЭВМ не обойтись. к счастью, в 1878 году был разработан полиномиальный тест простоты, применимый именно для таких чисел, который настолько превосходил по скорости все другие, что вот уже долгое время звание самых больших известных человечеству простых чисел удерживают простые числа Мерсенна.

переходя к практической части - проект распределённых вычислений GIMPS, который, собственно, уже третий десяток лет и занимается тем, что находит новые ПЧМ с помощью теста Люка-Лемера. принцип работы следующий - волонтёры устанавливают на компьютер ПО, которое после первичной настройки автоматически получает задания с сервера проекта и отправляет туда результаты.

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

тесты простоты бывают такие:
  • LL - тест простоты Люка-Лемера. однозначно доказывает, является ли проверяемое число простым. занимает, в зависимости от производительности процессора и величины экспоненты, от нескольких суток до месяцев.
  • LL-D - повторная проверка ранее проверенных LL-тестом экспонент. необходима для исключения ошибок и подтверждения корректности первого результата.
  • PRP - вероятностный тест простоты Миллера-Рабина. позволяет с высокой точностью определить, является ли число простым. выполняется быстрее LL, но в случае положительного результата, разумеется, придётся выполнять проверку с помощью LL
факторизация тоже бывает разная:
  • TF - перебор делителей. наименее производительный тест, перебирающий все возможные делители в определённом диапазоне. по понятным причинам, используется для поиска только небольших делителей, после чего заменяется на другие, более производительные алгоритмы. нюанс состоит в том, что TF отлично распараллеливается, а значит - подходит для запуска на GPU, где общая скорость перебора увеличивается на два порядка по сравнению с обычными процессорами.
  • PM1 - факторизация Р-1 методом Полларда. в отличие от перебора, находит (иногда) здоровенные делители, но за более продолжительное время. состоит из двух фаз, вторая из которых требует достаточно большого объёма оперативной памяти.
  • ECM - факторизация с помощью эллиптических кривых. как и P-1, не гарантирует результат, но выполняется быстро и также находит большие делители. тоже требует довольно много памяти.
продолжение следует, кто дослушал - молодец, вот вам котик


Tags: интернет, умное
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments