使用pow函数python计算mod

时间:2015-09-23 11:42:19

标签: python pow

所以,如果我想使用pow函数计算6 ^ 8 mod 5的值,我应该把它放在一行?

假设您不需要先导入它

我知道pow就像pow(x,y)= pow(6,8)= 6 ^ 8一样使用 和

我的猜测是

mod.pow(6,8)

谢谢!

3 个答案:

答案 0 :(得分:20)

这很简单:pow为模数采用可选的第三个参数。

来自docs

  

pow(x, y[, z])

     

将x返回到y;如果z存在,则将x返回到幂y,模z(比pow(x, y) % z)更有效地计算   两个参数形式pow(x,y)相当于使用幂运算符:   x**y

所以你想要:

pow(6, 8, 5)

pow(x, y, z)不仅速度更快,而且比(x ** y) % z效率更高,它可以轻松处理y的大值,而无需使用任意精度算术,假设z是一个简单的机器整数。

答案 1 :(得分:3)

查看pow的文档:

pow(6, 8, 5)

做你想要的。

使用a ** b % n!虽然这会得到正确的结果,但如果你计算更大的数字,它将会减少几个数量级。 pow将在每个步骤中执行模运算,而**将首先在整数中进行取幂(这可能会产生巨大的数字),并仅在端。

现在,如果您对大于32位的数字感兴趣,可能需要查看gmpy2以获得更快的速度。

答案 2 :(得分:0)

您可以使用'%'获得模数值的字符。例如print(pow(6,8) % 5)print(6**8 % 5)