【问题标题】:Can I calculate the time it will take for the program to run if I know the arithmetic complexity?如果我知道算术复杂度,我可以计算程序运行所需的时间吗?
【发布时间】:2019-12-02 19:54:55
【问题描述】:

我目前正在使用费马小定理(这是强制性的)寻找素数的任务,并且我拥有的程序(我认为)具有复杂性 O(logn)。然而,对于非常大的数字,它会拖得太久(我们说的是 1200 位,该类的大小),比如 8 分钟,我不知道这是否正常。在我们知道复杂度的情况下,有没有办法计算输入的平均时间?

【问题讨论】:

    标签: time complexity-theory


    【解决方案1】:

    如果您的算法具有渐近时间复杂度 f(n),这告诉您 lim T(n+1)/T(n) = lim f(n+1)/f(n) 当 n 变为无穷。因此,如果您知道 N、f 和 T(N),并且如果 N 已经足够大以至于可以逼近渐近行为,那么您可以估计 T(N+1) = T(N) * f(N+1) /f(N)。要选择足够大的 N,您需要了解所涉及的常数因子。

    【讨论】:

      猜你喜欢
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      相关资源
      最近更新 更多