我在工作中有一個非常有趣的任務 - 我需要找出用戶花了多少時間來做某件事,我所擁有的只是他儲蓄的時間戳。我知道用戶在每一小部分作品後都會保存,所以他們相隔不遠。如何從時間戳計算時間跨度?
顯而易見的解決方案是找出一個小物件可能需要多少時間,然後纔會經過排序的時間戳,並且如果當前一個與前一個之間的差異超過了這個時間,則意味着用戶有茶歇如果它更少,我們可以將這個差值加到總和中。簡單的示例代碼來說明:
var prev_timestamp = null;
var total_time = 0;
foreach (timestamp in timestamps) {
if (prev_timestamp != null) {
var diff = timestamp - prev_timestamp;
if (diff < threshold) {
total_time += diff;
}
}
prev_timestamp = timestamp;
}
問題是,雖然我知道在一小部分上花了多少時間,但我不想依賴它。如果一些用戶比我的預測慢得多,我不希望他沒有薪水。所以我在想,這個問題能否有一些聰明的數學解決方案,可以在不知道什麼時間間隔可以接受的情況下工作?
PS。不好意思誤解,當然沒有人會根據這個數字付錢給人,即使他們願意,他們也明白這只是一個近似值。但我想找到一個解決方案,儘可能接近現實生活。
「沒有工資」?你說你的算法會決定人們的付款嗎?我不喜歡這樣的工作... – balpha 2009-06-29 12:59:20
我在這裏有點誇張:)但是這些數字將顯示給各種各樣的人,所以誰知道... – vava 2009-06-29 13:04:25