3 个版本
0.1.2 | 2022年5月20日 |
---|---|
0.1.1 | 2021年3月23日 |
0.1.0 | 2020年5月24日 |
#978 在 算法 中
15KB
211 行
sainte_lague
圣莱格方法(也称为 Webster 或 Schepers)的 Rust 实现。该算法被德国、拉脱维亚、新西兰等多个国家用于议会席位分配。
注意:由于一些国家(如拉脱维亚或挪威)使用的是算法的修改版本而不是这个原始版本,您应该检查您所在国家的选举立法。此外,尽管我对我的实现相当自信,但我对计算出的数字的准确性不承担任何责任。
示例
use sainte_lague::distribute;
// …
#[test]
fn german_bundestag_2013() {
let votes = [41.5, 25.7, 8.6, 8.4];
let seats = 631;
let distribution = distribute(&votes, &seats, &false);
let parliament = vec![311, 193, 64, 63];
assert_eq!(distribution, Ok(parliament));
}
// …
完整的文档在 docs.rs 上。
类似项目
largest-remainder-method
- Hare-Niemeyer / Hamilton / 最大的余数方法的 Rust 实现
贡献
如果您发现了一个错误或想提出一个特性,请随时访问 问题页面。
依赖
~310KB