#elo #bayes #unbalanced #game #rank-algorithm

bayes_elo

一个用于计算平衡和不平衡竞赛或游戏中的Elo值的库

2个版本

0.1.1 2024年7月19日
0.1.0 2024年7月19日

2 in #elo

Download history 187/week @ 2024-07-15 29/week @ 2024-07-22 8/week @ 2024-07-29

224 每月下载量

GPL-2.0-or-later

16KB
191

bayes_elo

Rust

一个用于计算平衡和不平衡竞赛或游戏中的Elo值的库。

使用方法

假设你已经安装了bayes_elo crate。

use bayes_elo::BayesElo;

let mut bayes_elo_instance = BayesElo::new();

/// @params winner_elo: f64 - winner's elo.
///         loser_elo: f64 - loser's elo.
///         is_winner_advantage:bool - if winner is advantage camp.
/// @return (new_winner_elo: f64, new_loser_elo: f64).
let result = bayes_elo_instance.calculate(1700.0_f64, 1200.0_f64, true);
println!("new result: {}, {}", result.0, result.1);
assert_eq!(result.0 > 1700.0_f64, true);
assert_eq!(result.1 < 1200.0_f64, true);

let new_k = bayes_elo_instance.set_k_factor(20.0f64);
println!("new k: {}", new_k);

/// @params first_player_elo: f64 - first-player's elo.
///         second_player_elo: f64 - second-player's elo.
///         is_first_player_advantage:bool - if first-player is advantage camp.
/// @return (new_first_elo: f64, new_second_elo: f64).
let result_4_draw = bayes_elo_instance.calculate_4_draw(1700.0_f64, 1200.0_f64, true);
println!("new result_4_draw: {}, {}", result_4_draw.0, result_4_draw.1);
assert_eq!(result_4_draw.0 < 1700.0_f64, true);
assert_eq!(result_4_draw.1 > 1200.0_f64, true);

许可证

  • GNU通用公共许可证版本3

参考

  1. 贝叶斯-Elo.

无运行时依赖