СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Математика. Понятие показателя. Простейшие свойства. Нахождение показателей. Первообразные корни.

Категория: Математика

Нажмите, чтобы узнать подробности

Первообразным корнем по модулю  (primitive root modulo ) называется такое число , что все его степени по модулю  пробегают по всем числам, взаимно простым с . Математически это формулируется таким образом: если  является первообразным корнем по модулю , то для любого целого  такого, что , найдётся такое целое , что .

В частности, для случая простого  степени первообразного корня пробегают по всем числам от  до .

Существование

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

Эта теорема (которая была полностью доказана Гауссом в 1801 г.) приводится здесь без доказательства.

Связь с функцией Эйлера

Пусть  - первообразный корень по модулю . Тогда можно показать, что наименьшее число , для которого  (т.е.  — показатель  (multiplicative order)), равно . Более того, верно и обратное, и этот факт будет использован нами ниже в алгоритме нахождения первообразного корня.

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

 

Алгоритм нахождения первообразного корня

Наивный алгоритм потребует для каждого тестируемого значения   времени, чтобы вычислить все его степени и проверить, что они все различны. Это слишком медленный алгоритм, ниже мы с помощью нескольких известных теорем из теории чисел получим более быстрый алгоритм.

Выше была приведена теорема о том, что если наименьшее число , для которого  (т.е.  — показатель ), равно , то  — первообразный корень. Так как для любого числа , взаимно простого с , выполняется теорема Эйлера (), то чтобы проверить, что  первообразный корень, достаточно проверить, что для всех чисел , меньших , выполнялось . Однако пока это слишком медленный алгоритм.

Из теоремы Лагранжа следует, что показатель любого числа по модулю  является делителем . Таким образом, достаточно проверить, что для всех собственных делителей  выполняется . Это уже значительно более быстрый алгоритм, однако можно пойти ещё дальше.

Факторизуем число . Докажем, что в предыдущем алгоритме достаточно рассматривать в качестве  лишь числа вида . Действительно, пусть  — произвольный собственный делитель . Тогда, очевидно, найдётся такое , что , т.е. . Однако, если бы , то мы получили бы:

т.е. всё равно среди чисел вида  нашлось бы то, для которого условие не выполнилось, что и требовалось доказать.

Таким образом, алгоритм нахождения первообразного корня такой. Находим , факторизуем его. Теперь перебираем все числа , и для каждого считаем все величины . Если для текущего  все эти числа оказались отличными от , то это  и является искомым первообразным корнем.

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

Про скорость роста первообразных корней с ростом  известны лишь приблизительные оценки. Известно, что первообразные корни — сравнительно небольшие величины. Одна из известных оценок — оценка Шупа (Shoup), что, в предположении истинности гипотезы Римана, первообразный корень есть .

 


Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!