2009-06-29 10 views
0

私は仕事でかなり面白い仕事をしています - ユーザーが何かしらの時間を費やしたかを知る必要があり、私が持っているのは彼の貯蓄のタイムスタンプです。私は、ユーザーが作品の小さな部分の後に保存するという事実を知っているので、遠く離れているわけではありません。タイムスタンプからタイムスパンを計算する方法は?

明白な解決策は、小さなアイテムがどれくらい時間を取ってソートされたタイムスタンプをどれくらいの時間で通過できるかを調べ、現在のものと前のものの差がそれ以上であれば、それが少ない場合は、この差を合計して合計することができます。それを説明するための簡単なコード例:

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。誤解をおかけして申し訳ありませんが、当然のことながら、この番号に基づいて人を払う人はいないでしょう。しかし、私は実際の生活にできるだけ近い数値を出すような解決策を探したいと思っています。

+1

「給料なし」?あなたのアルゴリズムが人の支払いを決めると言っているのですか?私はそのようなものに取り組んでいません... – balpha

+0

私はここに少し誇張しています:)しかし、それらの数字はあらゆる種類の人々に表示されますので、誰が知っている... – vava

+0

私はあなたが欲しいかもしれないと思う確率統計学の本を読んだり、誰かに迷惑をかけている場合に備えて、数学を見直さないようにしてください。 – SpaceghostAli

答えて

2

すべてのユーザーのグループの場合はstandard deviation、1人のユーザーの場合はvarianceの間隔で表示するか、サンプルセットの場合は2つの組み合わせを使用する必要があります。

5

中央値のTimeSpanを取得してから、50%を超えるTimeSpanを破棄することができます。

しかし、このアルゴリズムでは、IMHOはプロジェクトあたりの推定所要時間を得るためにのみ使用する必要があります。は給与計算ではではありません。

+1

Groo私は確かにその場所で作業したくない...;) –

+0

これは明らかにあまりにも、私は本当に1つの計算でそれを計算することができます。 – vava

1

すべての期間を把握し、平均を確認しますか?平均スパンの外にあるものがある場合は、そのスパンを破棄したり、平均値の調整値を使用したりすることができます。

私は、「保存」タイムスタンプだけに基づいて何かを使用することは、あなたがすべきことではないことに同意します。これは決して実際の時間をあなたに提供するものではありません。

1

あなたが求める巧妙な数学は「標準偏差」と呼ばれます。

関連する問題