2016-11-29 57 views
1

我有一個進步,根據三個操作前進。 第一個操作需要10秒,第二個操作需要15秒,第三個操作需要15秒。 進度百分比可以使用以下公式來計算:根據潛在的錯誤重新計算進度百分比

elapsedTime/totalTime * 100% 

其中TOTALTIME是10 + 15 + 15 = 40秒。

現在假設每個操作在每個操作結束時可能會有一個錯誤(例如,第一個操作需要多3秒,所以完成它的時間是13秒)。 重新計算進度百分比的新方法是什麼,以便進度 總是前進(應該緩慢進行,但不要倒退)?

我進步的最大設置爲100。

+0

我甚至不會嘗試估計每個進程的時間。也許一臺慢電腦會執行這個工具,這需要更多的時間。這不是準確的!我寧願將進程數除以百分比。當然,並不是每一個百分比都會一樣。 – C4u

+1

另外:您可以將回退進程添加到進程總數中。這樣,進展會變得更慢,但永遠不會倒退。 – C4u

回答

1

如果您將error_Time添加到雙方,該怎麼辦?我的意思是這樣的:

(op1+ error_Time_op1 + op2 +op3)/(totalTime + error_Time_op1) * 100% 
1

由該錯誤已添加到整個進度

totalTime + error_time 

的去永遠向前,你應該凍結進度量增加totalTime顯示錯誤發生時的值,並且僅在新計算的百分比超過記憶值時才進行更新。

像你在運行2的末尾:

totalTime = 40; 
elapsedTime = 25; 

old_progress = 25/40 * 100 [62.5%] 

則出現錯誤:

errorTime = 3; 
totalTime = 40 + errorTime ; 
elapsedTime = 25; 

new_progress = 25/43 * 100 [58.1%] 

現在你等到new_progress值超過old_progess值,然後你可以再次更新。這樣,它永遠不會倒退

+0

這將設置百分比。還有一個問題,如果@MartinaLabMath想要有這個。 – C4u

+0

@ C4u我花了一段時間來寫下其餘的帖子。 –