Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class EloRating
- {
- public static function Probability(float $rating1, float $rating2): float
- {
- return 1 / (1+(10**(($rating2-$rating1)/400)));
- }
- public static function RatingChange(float &$winner_rating, float &$loser_rating, float $match_weight = 30.0)
- {
- $probability_winner = EloRating::Probability($winner_rating, $loser_rating);
- $probability_loser = 1 - $probability_winner;
- $winner_rating = $winner_rating + $match_weight * (1 - $probability_winner);
- $loser_rating = $loser_rating + $match_weight * (0 - $probability_loser);
- }
- }
- $rating1 = $argv[1];
- $rating2 = $argv[2];
- $k = $argv[3] ?? 30;
- EloRating::RatingChange($rating1, $rating2, $k);
- echo $rating1.' '.$rating2.PHP_EOL;
Advertisement
Add Comment
Please, Sign In to add comment