Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Objective Champion Winrate Algorithm
- DISCLAIMER: This is not tested at all, and by no means must be taken into serious consideration yet; it's under heavy development without evident mathematical reasoning behind the algorithms. All the formulas are generated with a concept in mind that is extracted empirically.
- G(t): a function that, given a time t (in seconds), calculates the gravity of the match's result towards the overall winrate of the champion based on the player's estimated experience
- Assume a player has played a total of M matches, of which N are with that champion whose winrate is to be calculated. Each match is Q[i], where 0 <= i < M, and each match with the selected champion is P[i], where 0 <= i < N.
- At any given moment, the player's experience in that champion is determined by both the frequency at which they train themselves and the other champions that are being played. The more the times the player does not play the selected champion, the more the gravity degrataion.
- The gravity starts and is low-capped at 1.00. By playing the champion gravity is increased exponentially, and by not playing for a certain amount of time or more, or even playing other champions, gravity starts slightly decreasing exponentially too.
- However, as the player keeps playing, their experience is also increased depending on the frequency of playing.
- Therefore, by iterating through all the matches, the gravity for the selected champion is determined by the following formula:
- G(t) = max(1, g(m)), where
- - t is the time in seconds
- - m is the index of the last match that was **completed** before time t
- j
- g(t) = 1 + Σ (d(j, k, a(j)) ^ o(i, j)), where
- i=0
- - j is the index of the last match before the specified time
- - k is the index of the last match with the selected champion before the specified time
- d(p, q, t) = ((b(q) - t) / (1.75D)) ^ sqrt(2), where
- - p is the index of the last match before the specified time
- - q is the index of the last match with the selected champion before the specified time
- - t is the time at which the delta is being calculated
- - D the constant denoting the number of seconds in a day (86400)
- e(p, t) = , where
- - p is the index of the last match before the specified time
- - q is the index of the last match with the selected champion before the specified time
- - t is the time at which the delta is being calculated
- o(i, j) = (1 + (1 - j ^ -0.25) * (i / j) ^ 1.25), where
- - i is the index of the currently evaluated match
- - j is the index of the last match that will be evaluated
- k(i) =
- a(i): a function that returns the time at which the match at the specified index started
- b(i): a function that returns the time at which the match with the selected champion at the specified index started
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement