I’m looking for a scoring algorithm but I really don’t find what I’m looking for.
Let’s imagine an application in which an user can post reviews, can vote on articles or create reviews, like or dislike reviews/articles. The goal is to rank user depending on their activity.
The system himself might grow like a neperian logarithm or something, so the more points you have the more difficulty you have to get more points. Also a newbie must have a voice against a very experienced user, but his voice is less important.
I’m thinking about:
Each action has a base value.
An user has an amount of points, which determines his weight.
His amount of points determine his level and so the set of actions he can perform.
When a user performs an action his weight affect the base value of the action, and his amount of points increase so his weight also.
Does this sound correct ? And Do you know some algorithms/examples of code implementing this kind of thing ? Thanks
PS : I also mean which function should I take has weight ?
How about something like this:
Each action has base value at least 100 points (but not more than 1000).
User starts with 100 points
And if user that has X points in total performs action with value base Y you give him
10 * Y / log2(log2(X))extra points.So after performing consecutively actions with 100 base value, user recives: