1
$\begingroup$

I have just created what I thought to be a good scoring algorithm until I looked at some demo results. It now looks pretty floored though

I have a table with a number of images I have another table with any number votes on all of the image that have been submitted.

Now rather than just increment a vote counter to output the score, I though I'd do something else so came up with this.

  TIME NOW - IMAGE SUBMITTED TIME
( ------------------------------- ) x 1000000 = Score
    TOTAL VOTES FOR THIS IMAGE

But the score seems very floored with the images that were recently submitted.

Example

Recent image: 13 votes, submitted 8528 seconds ago: Scores 1514

Older image: 222 votes, submitted 1948015 seconds ago: Scores 110

Is there a better way for me to do this that evens it all out?

$\endgroup$
0
$\begingroup$

You might want to use an exponential:

Score = (votes from today) + 0.99*(score from yesterday) 
$\endgroup$
  • $\begingroup$ So continuing that for each day that has passed since the submission data? Score = (today) + (0.99 x (today-1) ) + (0.96 x (today-1) ) + ( 0.93 x (today-3) ) $\endgroup$ – Shane Jones Sep 3 '14 at 13:15
  • $\begingroup$ you have many ways to compute an exponential. I think you should update it once a day, so you can use it very fast on every request $\endgroup$ – Sylvain Biehler Sep 4 '14 at 14:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.