在 Python 的 gmpy2 扩展模块中,有一个称为mpz的多精度整数类型。它包含一个powmod(x, y, m)
函数,而我在 Ruby 中一直缺少该函数。我最近得知 Ruby 实际上有一个powmod
. 它隐藏在 OpenSSL 模块中。
require 'openssl'
result = a_big_int.to_bn.mod_exp(exponent, modulo)
另一个功能,也在 gmpy2 中,我一直缺少的是divm(...)
.
divm(a, b, m) 返回 x 使得 b * x == a 模 m。如果不存在这样的值 x,则引发 ZeroDivisionError 异常。
你知道 OpenSSL 模块是否还有另一个惊喜,或者任何具有这种功能的宝石?如果它是一个快速的,那将非常有帮助。