Дискретное логарифмирование в группе
Версия от 11:53, 1 июля 2010; 192.168.0.2 (обсуждение)
Эта статья требует доработки!
- Зачем нужен алгоритм с временем работы , если можно просто перебрать все степени за (исправлено)?
Если Вы исправили некоторые из указанных выше замечаний, просьба дописать в начало соответствующего пункта (Исправлено).
Рассмотрим конечную группу
Теперь рассмотрим обобщенную задачу поиска порядка, также называемую задачей дискретного логарифмирования: для заданных и из группы найти такое минимальное , что .
Очевидно, (следует из принципа Дирихле). Пусть . Будем искать в виде , где и (такое представление существует и единственно на основании существования и единственности деления с остатком).
Далее мы выписываем все полученные выражения для левой и правой частей при всех допустимых
и (или складываем в удобную структуру данных: отсортированный массив, хеш, дерево и т. д.). После чего ищем пересечение. Для каждого элемента одной части поиск в структуре данных для другой части (в случае с отсортированным массивом) занимает время . Учитывая, что время на предварительную обработку , общее время работы алгоритма − .