gpt4 book ai didi

c++ - 快速功率算法实现

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:43:25 24 4
gpt4 key购买 nike

我需要计算二次余数。质数 p 是 3 mod 4,是一个非常大的数,大约 1e38 (constexpr)。我只找到了 Lagrange x = +- a^((p + 1)/4) mod p 的公式。

我需要计算大数的幂 (a ^ 1e38)。我试图使用 boost::multiprecision::cpp_int,但似乎没有任何意义。对于这样的计算或替代算法,可能有人知道一个很好的实现。

最佳答案

通常,当顶部小于底部时,通过二次互易调用​​来翻转 Jacobi 符号(或 Kronecker 符号),通过欧几里德算法式计算来测试某物是否为二次余数。


此外,您几乎不应该计算指数然后减少模p:您的求幂算法(例如平方和乘法)应该减少模p 在每一步左右的计算之后。关键词:“模幂”。

关于c++ - 快速功率算法实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33162588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com