计算程序中的估计时间

Kil*_*zor 3 c++

我正在制作一个程序,我想向用户提供有关每1000个元素处理的估计时间的信息.我用这种方式计算时间:

  • C =到目前为止处理的元素
  • MAX =要处理的最大元素
  • Tp =经过的时间
  • Te =估计的时间

理论上,处理的元素和经过的时间之间的关系等于其余元素和其余时间之间的关系,所以我的公式是:

(C/Tp)=(MAX - C)/(Te - Tp)

所以我需要通过以下方式解决Te:

(Te-Tp)=(MAX-C)Tp/C.

最后:

Te =(MAX-C)Tp/C + Tp

我认为这个解决方案是正确的,但很明显,随着CTp的增长,操作不会倾向于0 ,所以我确信我做的是一个愚蠢的错误,但我找不到.

请问一些想法?

das*_*ndy 5

我认为没关系.您可能正在考虑"剩余时间",在您的情况下将是Tr = Te - Tp.那个确实倾向于0.

开始:C = 0,结果除以零.有道理,你没有速度指示,所以没有估计.

结束:C = MAX,MAX-C = 0,所以Te = Tp.有道理,估计现在等于经过的时间.

中途,C = MAX/2,MAX-C = C,因此Te = C*Tp/C + Tp,或大约是当前通过量的两倍.说得通.

四分之一,C = MAX/4,MAX-C = 3*C,因此Te = 3*C*Tp/C + Tp,或Te = 4*Tp.再次有意义.


You*_*You 5

我认为你的初始方程略有偏差,而不是你应该拥有的

(C/Tp) = (MAX - C)/Te
Run Code Online (Sandbox Code Playgroud)

因为我们估计处理每个项目所需的时间,这在过去和未来应该是恒定和平等的.这将给你一个最终的等式

Te = (MAX - C)*(Tp/C)
Run Code Online (Sandbox Code Playgroud)

它按预期趋于零.

(假设这Te是估计的剩余时间,而不是估计的总时间)