波达计数法(Borda Count)是较为简单的排序投票法,每个选项借由选票上的排序来取得积分,积分最高者获胜。另一个类似的方法则是位置投票制。
投票人按喜好排列候选者。如果候选者在选票的排第一位,它就得某个分数;排第二位得一个较小的分数……如此类推。分数累计下来最高分的候选者便取胜。

名字的由来:

历史上有许多人曾提出使用波达计数法。它曾是罗马议会采用的投票制度之一。13世纪雷蒙·卢尔15世纪的库萨的尼可拉都曾提出这个制度,但在1770年让-查理斯·波达(Jean-Charles de Borda)提出用波达计数法来选举法国科学院(Académie des sciences)时被人以他的名字来命名此计数法。

例子:

假设有三个候选人甲、乙、丙的选举。结果如下:
  • 4张选票为:1.甲 2.乙 3.丙
  • 5张选票为:1.甲 2.丙 3.乙
  • 7张选票为:1.丙 2.乙 3.甲
若排第一位的候选人取得2分,第二位得1分,第三位无分,各人的分数如下:
  • 甲:4*2+5*2+7*0 = 18
  • 乙:4*1+5*0+7*1 = 11
  • 丙:4*0+5*1+7*2 = 19
即丙胜出。
瑙鲁议会选举以排第一位得1分,排第二得1/2=0.50分,排第三得1/3=0.33分来计算。如果按这个方法,刚才的选举结果要改写:
  • 甲:4*1.00+5*1.00+7*0.33 = 11.31
  • 乙:4*0.50+5*0.33+6*0.50 = 6.65
  • 丙:4*0.33+5*0.50+7*1 = 10.82
这回是甲胜了。

应用举例:

波达计数法不只考虑选民的第一选择,会同时考虑选民的其他选择及所有取向。换个说法,波达计数法的胜利者未必是最多人放在第一位的。
这种方法较不易选出偏激或极具争议性的人士。
例如:
#
51票
5票
23票
21票
1
张三
王五
李四
马六
2
王五
李四
王五
王五
3
李四
马六
马六
李四
4
马六
张三
张三
张三
采用排第n位得4-n分的准则,各人分数如下:
  • 张三: 153
  • 李四: 151
  • 王五: 205
  • 马六: 91
不论在多数制还是排序复选制,张三都是赢家。但在波达计数法之下,因为其他选民也将张三排在最尾,拖低了他的分数,结果张三败给王五。

Borda count的更多相关文章

  1. nodejs api 中文文档

    文档首页 英文版文档 本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可. Node.js v0.10.18 手册 & 文档 索引 | 在单一页面中浏览 | JSON格 ...

  2. C#中Length和Count的区别(个人观点)

    这篇文章将会很短...短到比你的JJ还短,当然开玩笑了.网上有说过Length和count的区别,都是很含糊的,我没有发现有 文章说得比较透彻的,所以,虽然这篇文章很短,我还是希望能留在首页,听听大家 ...

  3. [PHP源码阅读]count函数

    在PHP编程中,在遍历数组的时候经常需要先计算数组的长度作为循环结束的判断条件,而在PHP里面对数组的操作是很频繁的,因此count也算是一个常用函数,下面研究一下count函数的具体实现. 我在gi ...

  4. EntityFramework.Extended 实现 update count+=1

    在使用 EF 的时候,EntityFramework.Extended 的作用:使IQueryable<T>转换为update table set ...,这样使我们在修改实体对象的时候, ...

  5. 学习笔记 MYSQL报错注入(count()、rand()、group by)

    首先看下常见的攻击载荷,如下: select count(*),(floor(rand(0)*2))x from table group by x; 然后对于攻击载荷进行解释, floor(rand( ...

  6. count(*) 与count (字段名)的区别

    count(*) 查出来的是:结果集的总条数 count(字段名) 查出来的是: 结果集中'字段名'不为空的记录的总条数

  7. BZOJ 2588: Spoj 10628. Count on a tree [树上主席树]

    2588: Spoj 10628. Count on a tree Time Limit: 12 Sec  Memory Limit: 128 MBSubmit: 5217  Solved: 1233 ...

  8. [LeetCode] Count Numbers with Unique Digits 计算各位不相同的数字个数

    Given a non-negative integer n, count all numbers with unique digits, x, where 0 ≤ x < 10n. Examp ...

  9. [LeetCode] Count of Range Sum 区间和计数

    Given an integer array nums, return the number of range sums that lie in [lower, upper] inclusive.Ra ...

随机推荐

  1. Linux 部署 Tomcat和JDK

    一:安装jdk下载将jdk加压后放到/usr/local目录下: [root@master ~]#chmod 755 jdk-6u5-linux-x64.bin [root@master ~]# ./ ...

  2. vi命令

    VI命令可以说是Unix/Linux世界里最常用的编辑文件的命令了,但是因为它的命令集众多,很多人都不习惯使用它,其实您只需要掌握基本命令,然后加以灵活运用,就会发现它的优势,并会逐渐喜欢使用这种方法 ...

  3. cs的变态语法

    int? a = null; //?指示a为可空checked { ... } //赋值溢出抛异常unchecked { ... } //赋值溢出不抛异常expr1??expr2 //空结合运算符,e ...

  4. C#排列组合类

    //----------------------------------------------------------------------------- // // 算法:排列组合类 // // ...

  5. 原创:运行loadtest时报错the load test results repository was created with a previous version and is not compatible

    如果run setting中的Storage Type设置为DataBase,则需要设置数据库来保存loadtest的运行结果,如下图所示 图:Storage Type设置为DataBase 图:在M ...

  6. sina微博上看到的关于android界面设计相关的规范

    图片来自:http://photo.weibo.com/5174249907/wbphotos/large/mid/3777508610941685/pid/005EaCLFjw1emcpzdgrj9 ...

  7. POJ 3905 Perfect Election

    2-SAT 裸题,搞之 #include<cstdio> #include<cstring> #include<cmath> #include<stack&g ...

  8. c# 动态产生控件 注册动态控件事件

    用CheckEdit演示 其他控件类推 CheckEdit AllSele = new CheckEdit(); AllSele.Location = new System.Drawing.Point ...

  9. IOS之按钮控件--Button全解析及使用 分类: ios技术 2015-01-17 17:09 169人阅读 评论(0) 收藏

    IOS开发中伴随我们始终的 最常用的几个空间之一 -- UIButton 按钮,对于button今天在此做一些浅析,并介绍下主流用法以及常见问题解决办法. 首先是继承问题,UIButton继承于UIC ...

  10. Is it possible to run native sql with entity framework?

    For .NET Framework version 4 and above: use ObjectContext.ExecuteStoreCommand() if your query return ...