to_f used instead of to_i in New Rating method #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As Elo is used in zero-sum games in which each participant's gain or loss of utility is exactly balanced by the losses or gains of the utility of the other participants.
#to_i here remove that precision from new rating (e.g. where one player is gaining 13 and other is loosing 12).
In few matches it does not affect much but if there are large number of matches between 2 players then these small loss precision affects the rating.
In my case i started with 2 player with rating 1000 each and ran a script for 1000 matches between them with random output.
In Case of #to_i.
player1 rating drops to 525
player2 rating drops to 476
In Case of #to_f
player1 rating increase to 1013.3827387
player2 rating drops to 986.6172
here in second case it actually proving the zero-sum Games logic.