Algorithm 自然数幂和的求法

Algorithm 自然数幂和的求法,algorithm,python-3.x,Algorithm,Python 3.x,我正在使用pythonpown,k,mod来获得自然数的幂和,但没有得到完美的时间复杂度。 我用的是什么 mod = 10**9+9 total = 0 for i in range(2, n): x = pow(i, k, mod) total += x total = total%mod return total 你能推荐一种解决幂和的算法吗 ( 1^k + 2^k + 3^k + 4^k .... n^k ) mod 1000000009 其中k的范围为1到10

我正在使用pythonpown,k,mod来获得自然数的幂和,但没有得到完美的时间复杂度。 我用的是什么

mod = 10**9+9
total = 0
for i in range(2, n):
    x = pow(i, k, mod)
    total += x
    total = total%mod
return total
你能推荐一种解决幂和的算法吗

( 1^k + 2^k + 3^k + 4^k .... n^k ) mod 1000000009

其中k的范围为1到1000,n属于自然数1,您可以使用它来避免重新计算大的幂。例如,16^k是2^k^4。您已经计算了2^k,因此可以在表中查找它,或者-使用前瞻策略-您可以预先计算2的所有幂

你认为完美的时间复杂性是什么?显示您使用的代码。@NicoSchertler我从方程中得到的感觉是,它可能通过FFT方法解决。您认为您在这一领域似乎有更多的经验吗?我看到了编辑,因此方程为1^k+…+n^k mod 1000000009我用它编辑了你的问题,所以如果不是这个案例,请将它编辑回来。所以你不需要大整数。因为这是一场持续的竞赛,所以只需要提示加速:你应该分解therms,这样你就可以从素数i计算出非素数i,从而显著降低所需的乘法计数。。。。此外,当您在循环中跳过1^k以查找可能的重复项时,您应该从total=1开始