Need a little help distributing points in a competition

Associate
Joined
23 Mar 2006
Posts
1,739
Hi,

I've started running a programming competition at work and need a little help working out how to distribute points between the entrants.

75 points are on offer for execution time. I had initially decided that the slowest gets 0 points and the fastest gets 75, everyone else gets a proportion based on where they sit between fastest and slowest. However one entry is taking significantly longer ( 250secs for most, this one is going on over 1hr!), so using the stated method means everyone but this one gets 75points (I'm not going to enough decimal places to make them actually different).

Any ideas how I could distribute the points?
 
How on earth is someone taking an hour to do something that's taking most people 5 minutes? Have they died?

His solution passed the validity tests so I am assuming it is still working.

There are two approaches to the problem, the mathematical approach that yields the quickest time and the brute force approach that is simpler to devise but takes longer.

As the brute force approach involves lots of loops it can take significantly longer, especially as in this case the number of times it is looping can be up to the (2^64)-1
 
(shortest time/applicants time)*75

so if fastest is 10 seconds and someone does it in 20 seconds then 50% = 37.5 points.

Similarly once you know the fastest time you can reverse the equation and discover the threshold time under which any rounding off will give them 0 points ie if 0.044 points or below, for example.
 
Why can't you just distribute the points based on position? So, if you had 16 people the person who finished first would get the 75 points, the person who finishes second gets 70 and so on down to 0 for last place?

I understand the desire to distribute points based on a relative basis but it's only a little competition and most major sports competitions (which are slightly more important) are based on a simple scoring system like that.
 
Can't you just do it like a race?

1st - 40 points
2nd - 25 poins
3rd - 10 points

All the other losers, no points

Or similar

Edit: Oh max of 75 points, I didn't read it very well. Above post would be better then.
 
Why can't you just distribute the points based on position? So, if you had 16 people the person who finished first would get the 75 points, the person who finishes second gets 70 and so on down to 0 for last place?

I understand the desire to distribute points based on a relative basis but it's only a little competition and most major sports competitions (which are slightly more important) are based on a simple scoring system like that.

The number of entrants will change from round to round.
 
Back
Top Bottom