python使用哪种算法使用pow(a,b,m)计算a ^ b%m如此之快?

时间:2018-12-23 00:11:55

标签: python python-3.x math modular-arithmetic

我想计算a ^ b%m,其中a,b和m是非常大的数字,例如2 ^ 256或2 ^ 512位。据我所知,有一种称为bigmod或powmod的方法可以计算O(log m)时间复杂度的a ^ b%m,但是由于数量巨大,我们需要使用BigIntegers来实现它。这比正常的算术运算要慢。因此,为此工作,我实现了自己的Biginteger库并实现了O(log m)算法来计算a ^ b%m。但是它使用最少7到8秒来执行python pow(a,b,m)函数在不到1秒的时间内运行。因此,我想了解有关用于实现pow(a,b,m)的算法的详细信息。

0 个答案:

没有答案