stv轮询方法

STVPoll的Python项目详细描述


stvpoll自述文件

https://travis-ci.org/VoteIT/STVPoll.svg?branch=master

用于执行stv轮询计算的库。 这个包是作为voteit项目的一部分创建的,专门用来处理更大的 用马库斯-舒尔茨的stv方法很难计算的选举。

典型的用法是初选或有许多胜利者的选举 从众多候选人中脱颖而出。结果是成比例的。

完全支持:

  • 苏格兰STV

正在进行的工作:

  • CPO机顶盒

示例

案例来源: https://en.wikipedia.org/wiki/Single_transferable_vote

fromstvpoll.scottish_stvimportScottishSTVexample_ballots=((('orange',),4),(('pear','orange',),2),(('chocolate','strawberry',),8),(('chocolate','bonbon',),4),(('strawberry',),1),(('bonbon',),1),)poll=ScottishSTV(seats=3,candidates=('orange','chocolate','pear','strawberry','bonbon'))for(candidates,bcount)inexample_ballots:poll.add_ballot(candidates,bcount)result=poll.calculate()

这将返回一个electionresult对象,该对象包含结果和一些有用的元数据。 selected属性包含当选的候选人。

左边的候选人有更高的偏好,因此: ['pear','orange']在'orange'之前的意思是'pear'。 数字是有多少这样的选票。

result.elected[<Candidate:chocolate>,<Candidate:orange>,<Candidate:strawberry>]

代码和贡献

您可以在以下地址发送代码: https://github.com/VoteIT/STVPoll

请报告任何错误,或发送电子邮件info@voteit.se

更改

0.2.0(偏差)

  • 修正了在苏格兰电视台多选时决定先转移哪张选票的错误。[schyffel][robinharms]
  • 苏格兰电视台:解决关系,使赢家总是在正确的排名顺序(极端情况)。[schyffel]
  • 现在可以在python 3上工作了。[schyffel]
  • 测试覆盖率100%。[schyffel]

0.1.4(2018-05-12)

    修正了一轮不存在初选候选者的情况。[schyffel][robinharms]

0.1.3(2018-03-22)

  • 排除空票,使其不影响配额。[schyffel]

0.1.2(2017-11-24)

  • 修正了空选票的例外情况。[schyffel]

0.1.1(2017-11-24)

  • 修复了随机化导致异常的情况。[schyffel]

0.1.0(2017-11-03)

  • 初始版本

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Admob初始化失败,应用程序在启动时崩溃,即使没有错误   java如何在ibatis中使用存储过程?   java干净体系结构:在不同的环境中分离IO和核心。jar文件   Java streams compare属性在两个列表之间相等,并返回true或false   有没有一种压缩Java Try-Catch块的方法?   Android片段中的java Mapbox SDK   用于IzPack安装的JavaFX本机启动器:控制InnoSetup/WiX/RPMBuild行为   java接口是否可以将一个已经实例化的对象作为属性?   hashmap中的java线程问题   请求中的java字符编码。getRemoteUser()   java将OneTONE链接更改为另一个id为的实体   java当使用javaw启动应用程序时,不会执行关闭钩子。exe   Android java代码更改显示的微调器   java GZIP解压字符串和字节转换   运行springbatch后java LDAP运行状况检查失败