在执行操作时缩小输入量

时间:2018-02-18 23:09:15

标签: python-3.x time-complexity

我想让这个程序在大输入时运行得更快

def count1(i,j,k,n):
    b = k
    while n > 0:
        b = i*b
        while b > j:
            b = b - j
        n = n - 1
    return b

因此,在考虑之后,我想到了使用mod操作。所以,上面的代码再次被修改

def count1(i,j,k,n):
    b = k
    while n > 0:
        b = ((i%j)*(b%j))%j
        while b > j:
            b = b - j
        n = n - 1
    return b

因此,经过一些测试,这个实现确实更快,但是,它还不够快。有没有更多的方法可以在对它们执行操作时使大数字变小?有没有办法优化这些代码,使其在非常大的输入下快速运行?

1 个答案:

答案 0 :(得分:0)

使用cython或numba可能是提高原始性能的最佳方法,看一下cython教程