4 个版本
0.2.1 | 2023年9月1日 |
---|---|
0.2.0 | 2022年6月25日 |
0.1.1 | 2022年6月25日 |
0.1.0 | 2022年6月25日 |
#3 在 #投票
21KB
379 行
投票计数器
一个有见地的命令行单一可转移投票计数器。
安装
可以通过运行 cargo 进行安装:
cargo install vote-counter
演示
在仓库顶层提供了一个适当格式的示例 csv
文件。运行
vote-counter sample.csv --report
以从该文件中统计选票。
参数
运行 vote-counter --help
将输出以下内容
USAGE:
vote-counter [OPTIONS] <PATH>
ARGS:
<PATH> Path to the CSV containing the ballots
OPTIONS:
-h, --help Print help information
--report Generate report of counting
-t, --threshold <THRESHOLD> Threshold to win [default: 0.5]
-V, --version Print version information
解释每个参数及其用法。
选票文件
选票文件应该是一个格式如下 csv
Peter | Mia | Hannah | Lee | Fred | Julia |
---|---|---|---|---|---|
2 | 1 | 3 | |||
1 | 2 | 3 | 4 | ||
5 | 4 | 3 | 1 | 2 | 6 |
每一行代表一张选票,其中偏好从 1 开始表示,直到选民不再有偏好为止。
选票的有效性
该程序对考虑为有效的选票通常较为宽容。如果选票包含任何非负偏好数字,并且没有任何重复的数字,则该选票有效。
当相同的偏好被表达两次时,会发生无效选票。
例如,以下内容无效
Peter | Mia | Hannah | Lee | Fred | Julia |
---|---|---|---|---|---|
1 | 1 | 3 | |||
0 | 1 | 4 | 4 | ||
2 | 2 | 1 |
但是以下内容是有效的
Peter | Mia | Hannah | Lee | Fred | Julia |
---|---|---|---|---|---|
0 | 1 | 2 | 3 | ||
1 | 4 | ||||
2 | 5 | 1 |
负数将被简单地忽略。
依赖关系
~4–14MB
~120K SLoC