Есть ли реализация метода для получения квадратного корня элемента из конечного поля. Запрограммированный на C ++, я использовал NTL, но у меня нет способа сделать это.
заранее спасибо
Возможно, Джона Керла «Вычисления в конечных полях» (к сожалению, старая незаконченная рукопись) дает некоторые подсказки. Насколько я знаю, эффективных алгоритмов не существует, но я вполне могу ошибаться. Вы должны спросить в http://math.stackexchange.com или же http://cs.stackexchange.com.
Таким образом, библиотеки NTL предоставляют метод с именем ZZ :: SqrRootMod (…) с несколькими перегрузками. Метод фактически выполняет функциональность, которую я описал. Я хотел бы привести вам пример, например, так:
ZZ response;
response= SqrRootMod(conv<ZZ>(value), conv<ZZ>(prime));
Если бы значение могло иметь несколько числовых типов, при условии, что оно может быть приведено к ZZ, например (ZZ_p, int)
Это привлекло мое внимание после того, как я получил письмо от Прф. Покажите мне, за кого я благодарен.