用于模数除法的代码或算法
Code or Algo for Modulo Division
我需要找到Res=(A/B)%p。(p是素数)。
我的Num=A%p,Den=B%p。
有没有办法只使用Num、Den和p来找到Res?
我偶然发现:
(a / b) mod p = ((a mod p) * (b^(-1) mod p)) mod p
i.e. Res = (Num * b ^ (p - 2) % p) % p
现在如何使用Den找到b^(p-2)%p?
如果你能为我提供一个C++/C代码,我会非常高兴,因为我可以直接在游戏中使用它,否则,请帮助我找到一个公式,这样我就可以自己获得Res。
您可以使用快速求幂得到b^(p-2)%p的结果。
int qexp (int b, int e) {
if (e == 0) return 1;
long long h = qexp(b, e/2); //long long to prevent overflow in next step
h *= h;
h %= p;
if (e % 2 == 0) return h;
else return (h*b)%p;
}
使用qexp(b, p-2);
调用
相关文章:
- 读取最后一行代码算法 - c++ 时出现问题
- 如何将 c++ get 函数代码转换为 opencv 算法中使用的 python
- 如何知道用于实现标准代码段的确切数据结构和算法,例如在C++STL中?
- 由于指针算法错误,代码在 memcpy 中崩溃
- 为什么此代码上的排序算法不调用类的交换版本?
- 对于代码中指定的边界之外的值,对角差算法的输入不正确
- "使用算法;不要为多步骤逻辑编写代码"?
- 这条代码线在双方图算法中通过BFS做什么
- 带有 std::vector 和 std::queue 的 Prim's 算法,我的代码有什么问题?
- 尝试在C++中"blur"矩阵;有缺陷的算法或代码?
- C - 哈希算法代码什么都没有返回
- 在避免代码重复和冲突名称的同时,如何实现多个版本的同一算法
- C++算法:如何提高此代码的效率?[大O]
- 我需要一个测试案例来证明我的算法/代码错误
- 在C 中编写一个简单的排序算法以及伪代码版本
- 为什么当我使用std::算法而不是纯循环时,这个代码会变慢
- 为什么对于简单的 StereoBM 算法,我的代码比 opencv 慢得多
- 下面代码的算法复杂度是多少
- 在Java/PHP/Python框架内,在编译的C/C++代码中运行算法
- 将帧数转换为时间码的最佳代码/算法