Изменения

Перейти к: навигация, поиск

Вычисление порядка элемента в группе

482 байта убрано, 01:57, 18 сентября 2010
Нет описания правки
{{В разработке}}== Постановка задачи == Пусть <tex>G</tex> — [[группа]], <tex>a \in G</tex>. Требуется найти [[порядок элемента]] <tex>a</tex>.
Рассмотрим конечную группу <math>G</math>. Для заданного <math>a</math> необходимо найти такое минимальное <math>n</math>, что <math>a^n=e</math>. <br>Теперь рассмотрим '''обобщенную задачу поиска порядка''', также называемую '''задачей дискретного логарифмирования''': для заданных <math>a</math> и <math>b</math> из группы найти такое минимальное <math>n</math>, что <math>a ^ n = b</math>. <br>Решение ==Очевидно, <math>n < |G| </math> (следует По следствию из принципа Дирихле). Пусть <math>m = \lceil [[теорема Лагранжа|Gтеоремы Лагранжа]] порядок элемента является делителем [[порядок группы| \rceil</math>порядка группы]]. Будем искать Таким образом достаточно рассмотреть <mathtex>a^n</math> в виде <math>xm-y</mathtex>, где <mathtex>y n \in 0 \dots m - 1X</mathtex> и , <mathtex>x \in 1 \dots mX</mathtex>— делители порядка группы.<br><math>a ^ n = a ^ {xm - y} = b</math> <br><math>a ^ {xm} = b a ^ {y}</math> <br><math> {a ^ m} ^ x = b a ^ y </math> <br>
Далее мы выписываем === Алгоритм ===# Найти все полученные выражения для левой и правой частей при всех допустимых делители <mathtex>x|G|</tex> перебором от 1 до <tex>\sqrt{|G|}</mathtex> и # Для каждого делителя <mathtex>yn</mathtex> проверить значение <tex>a^n</tex>. Наименьший <tex>n</tex> (или складываем в удобную структуру данных: отсортированный массив, хештакой что <tex>a^n = e</tex>, дерево и т. д.). После чего ищем пересечение. Для каждого является порядком элемента одной части поиск <tex>a</tex> в структуре данных для другой части (в случае с отсортированным массивом) занимает время группе. === Алгоритмическая сложность ===Перебор от <tex>1</tex> до <tex>\sqrt{|G|}</tex> выполняется за <mathtex>O(log \sqrt{|G|})</mathtex>. Учитывая, что время на предварительную обработку Возведение <tex>a</tex> в степень <tex>n</tex> выполняется за <mathtex>O(|G|\log n)</mathtex>, общее . Следовательно время работы алгоритма − выполнения <mathtex>O(\sqrt{|G| } \cdot \log {|G|})</mathtex>. [[Категория:Теория групп]]
221
правка

Навигация