Дискретное логарифмирование в группе — различия между версиями
м |
м (rollbackEdits.php mass rollback) |
| (не показана 1 промежуточная версия 1 участника) | |
(нет различий)
| |
Текущая версия на 19:06, 4 сентября 2022
Постановка задачи
Рассмотрим конечную группу . Для заданных необходимо найти такое минимальное , что или сказать, что таких нет.
Алгоритм
Очевидно, (следует из принципа Дирихле). Пусть . Будем искать в виде , где и (такое представление существует и единственно на основании существования и единственности деления с остатком). Таким образом . Следовательно,
Далее мы выписываем все полученные выражения для левой и правой частей при всех допустимых и (или складываем в удобную структуру данных: отсортированный массив, хеш, дерево и т. д.). После чего ищем пересечение.
Время работы алгоритма
Для каждого элемента одной части поиск в структуре данных для другой части (в случае с отсортированным массивом) занимает время . Учитывая, что время на предварительную обработку , общее время работы алгоритма — .