https://github.com/ocelotko/elo
A simple and efficient Rust library for calculating Elo ratings. Provides functions for probability calculation and Elo rating updates.
https://github.com/ocelotko/elo
algorithm elo lib library rust
Last synced: about 2 months ago
JSON representation
A simple and efficient Rust library for calculating Elo ratings. Provides functions for probability calculation and Elo rating updates.
- Host: GitHub
- URL: https://github.com/ocelotko/elo
- Owner: ocelotko
- License: mit
- Created: 2025-04-02T07:10:12.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-04-04T09:26:04.000Z (6 months ago)
- Last Synced: 2025-04-04T10:29:10.543Z (6 months ago)
- Topics: algorithm, elo, lib, library, rust
- Language: Rust
- Homepage:
- Size: 4.88 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Elo Algorithm in Rust
This library provides an implementation of the **Elo rating system** in Rust. It is a simple, efficient way to calculate the Elo ratings of two players based on the outcome of a match.
## Usage
Here’s a basic example showing how to use this library:
```rust
use elo::{probability, elo_rating};fn main() {
let player_a_rating = 1500.0;
let player_b_rating = 1600.0;
let k_factor = 32; // Adjust K-factor as needed// Calculate the probability of player A winning
let prob_a = probability(player_a_rating, player_b_rating);
println!("Probability of player A winning: {}", prob_a);// Simulate a game where player A wins (outcome = 1.0)
let outcome = 1.0;
let (new_a_rating, new_b_rating) = elo_rating(player_a_rating, player_b_rating, k_factor, outcome);println!("New player A rating: {}", new_a_rating);
println!("New player B rating: {}", new_b_rating);// Simulate a game where player B wins (outcome = 0.0)
let outcome_b = 0.0;
let (new_a_rating_b, new_b_rating_b) = elo_rating(player_a_rating, player_b_rating, k_factor, outcome_b);println!("New player A rating when B wins: {}", new_a_rating_b);
println!("New player B rating when B wins: {}", new_b_rating_b);// Simulate a draw (outcome = 0.5)
let outcome_draw = 0.5;
let (new_a_rating_draw, new_b_rating_draw) = elo_rating(player_a_rating, player_b_rating, k_factor, outcome_draw);println!("New player A rating when Draw: {}", new_a_rating_draw);
println!("New player B rating when Draw: {}", new_b_rating_draw);
}