【发布时间】:2020-05-05 20:42:41
【问题描述】:
def f(a, b, c):
return ((a ** b)-1) // c % b
这个脚本可以在某种程度上更快吗? (我一直在寻找具有模幂运算的东西):
pow(a, b, c) == a ** b % c
但是上面的这个脚本似乎不能像那样改进。有谁知道加快上述脚本的方法?提前致谢。
编辑:
第二个脚本和第一个完全不一样,只是为了说明我想到了什么样的优化。
编辑:
我没有输入确切的方程式,因为我想要一个通用的案例解决方案, 具体是当 a = 4 和 c = 3 时。这样会更容易吗?
编辑:
我得到了明确的要求,如果我想先减法,或者我想先求幂,我想先进行求幂,我通过添加括号来明确。
【问题讨论】:
-
将每个案例运行一百万次,看看差异
-
@DYZ 但他只有 一个 实现。您是否忽略了他所询问的
// c? -
鉴于在座的几乎每个人都误解了这个问题并忽略了您真正要问的问题,如果您编辑问题以使其清楚,那将是很好的。
-
这真的是你程序的瓶颈吗?如果是这样,你应该考虑使用
numpy,如果你有很多这样的计算,或者使用 Cython,或者编写 Python C/C++ 扩展等,但现在你的问题看起来像XY problem -
请说明
a ** b-1是指a**(b-1)还是(a**b)-1。
标签: python performance exponentiation modular-arithmetic