Лекция
Привет, Вы узнаете о том , что такое решето аткина, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое решето аткина , настоятельно рекомендую прочитать все из категории Стереометрия.
решето аткина — алгоритм нахождения всех простых чисел до заданного целого числа N. Алгоритм был создан А. О. Л. Аткином и Д. Ю. Бернштайном . Заявленная авторами асимптотическая скорость работы алгоритма соответствует скорости лучших ранее известных алгоритмов просеивания, но в сравнении с ними решето Аткина требует меньше памяти.
Основная идея алгоритма состоит в использовании неприводимых квадратичных форм (представление чисел в виде ax2 + by2). Предыдущие алгоритмы в основном представляли собой различные модификации решета Эратосфена, где использовалось представление чисел в виде редуцированных форм (как правило, в виде произведения xy).
В упрощенном виде алгоритм может быть представлен следующим образом:
Для уменьшения требований к памяти «просеивание» производится порциями (сегментами, блоками), размер которых составляет примерно .
Для ускорения работы алгоритм игнорирует все числа, которые кратны одному из нескольких первых простых чисел (2, 3, 5, 7, …). Это делается путем использования стандартных структур данных и алгоритмов их обработки, предложенных ранее Полом Притчардом (англ. Paul Pritchard) . Они известны под названием англ. wheel sieving. Количество первых простых чисел выбирается в зависимости от заданного числа N. Теоретически предлагается брать первые простые примерно до . Это позволяет улучшить асимптотическую оценку скорости алгоритма на множитель . При этом требуется дополнительная память, которая с ростом N ограничена как . Увеличение требований к памяти оценивается как .
Версия, представленная на сайте одного из авторов , оптимизирована для поиска всех простых чисел до миллиарда (), в ней исключаются из вычислений числа, кратные 2, 3, 5 и 7 (2 × 3 × 5 × 7 = 210).
По оценке авторов , алгоритм имеет асимптотическую сложность и требует битов памяти. Ранее были известны алгоритмы столь же асимптотически быстрые, но требующие существенно больше памяти . Теоретически в данном алгоритме сочетается максимальная скорость работы при наименьших требованиях к памяти. Реализация алгоритма, выполненная одним из авторов, показывает достаточно высокую практическую скорость .
В алгоритме используется два вида оптимизации, которые существенно повышают его эффективность (по сравнению с упрощенной версией).
Ниже представлена реализация упрощенной версии на языке программирования C, иллюстрирующая основную идею алгоритма — использование квадратичных форм:
Исследование, описанное в статье про решето аткина, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое решето аткина и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Стереометрия
Из статьи мы узнали кратко, но содержательно про решето аткина
Комментарии
Оставить комментарий
Стереометрия
Термины: Стереометрия