Дискретное логарифмирование в группе — различия между версиями
Vprisivko (обсуждение | вклад) (Создание статьи (перенесена из Вычисление порядка элемента в группе)) |
|||
Строка 1: | Строка 1: | ||
{{В разработке}} | {{В разработке}} | ||
− | Рассмотрим конечную группу < | + | Рассмотрим конечную группу <tex>G</tex>. Для заданного <tex>a</tex> необходимо найти такое минимальное <tex>n</tex>, что <tex>a^n=e</tex>. <br> |
− | Теперь рассмотрим '''обобщенную задачу поиска порядка''', также называемую '''задачей дискретного логарифмирования''': для заданных < | + | Теперь рассмотрим '''обобщенную задачу поиска порядка''', также называемую '''задачей дискретного логарифмирования''': для заданных <tex>a</tex> и <tex>b</tex> из группы найти такое минимальное <tex>n</tex>, что <tex>a ^ n = b</tex>. <br> |
− | Очевидно, < | + | Очевидно, <tex>n < |G| </tex> (следует из принципа Дирихле). Пусть <tex>m = \lceil |G| \rceil</tex>. Будем искать <tex>n</tex> в виде <tex>xm-y</tex>, где <tex>y \in 0 \dots m - 1</tex> и <tex>x \in 1 \dots m</tex>.<br> |
− | < | + | <tex>a ^ n = a ^ {xm - y} = b</tex> <br> |
− | < | + | <tex>a ^ {xm} = b a ^ {y}</tex> <br> |
− | < | + | <tex> {a ^ m} ^ x = b a ^ y </tex> <br> |
− | Далее мы выписываем все полученные выражения для левой и правой частей при всех допустимых < | + | Далее мы выписываем все полученные выражения для левой и правой частей при всех допустимых <tex>x</tex> и <tex>y</tex> (или складываем в удобную структуру данных: отсортированный массив, хеш, дерево и т. д.). После чего ищем пересечение. Для каждого элемента одной части поиск в структуре данных для другой части (в случае с отсортированным массивом) занимает время <tex>O(log |G|)</tex>. Учитывая, что время на предварительную обработку <tex>O(|G|)</tex>, общее время работы алгоритма − <tex>O(|G| log |G|)</tex>. |
+ | |||
+ | [[Категория: Теория групп]] |
Версия 22:24, 29 июня 2010
Эта статья находится в разработке!
Рассмотрим конечную группу
Теперь рассмотрим обобщенную задачу поиска порядка, также называемую задачей дискретного логарифмирования: для заданных и из группы найти такое минимальное , что .
Очевидно, (следует из принципа Дирихле). Пусть . Будем искать в виде , где и .
Далее мы выписываем все полученные выражения для левой и правой частей при всех допустимых
и (или складываем в удобную структуру данных: отсортированный массив, хеш, дерево и т. д.). После чего ищем пересечение. Для каждого элемента одной части поиск в структуре данных для другой части (в случае с отсортированным массивом) занимает время . Учитывая, что время на предварительную обработку , общее время работы алгоритма − .