波达计数法(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. Struts2 语法--异常处理

    1. UsersDAO.java里产生一个例外: System.out.println(1/0); 2. 调用DAO的UsersAction1.java 的execute方法, 加抛异常: publi ...

  2. Myeclipse或Eclipse中搭建Easyui环境

    1.下载Easyui.网址:http://www.jeasyui.com/download/index.php 2.下载后解压,里面的demo文件夹可以不用添加到工程中. 3.如图所示在工程datag ...

  3. HDU 5523 Game

    坑题 #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> us ...

  4. 深入浅出Ajax(四)

    function initPage() { btn.onmouseover = buttonOver; btn.onmouseover = buttonOut; } 如上,浏览器只会运行指定的最后一个 ...

  5. string数组转化成int数组

    string idsStr = "1,2,3,4,5"; int[] ids = idsStr.Split(',').Select(Int32.Parse).ToArray();

  6. 为什么无论你怎么设置自定义的外层div的高度,easyui的动态添加的tab的高度还是不变高

    由以下代码可知,easyui自动将panel的height设置为了固定的150px高度!

  7. javascript 回调, 单线程执行

    原文: http://www.cnblogs.com/aaronjs/p/3322466.html 这里的"回调"并不是"阻塞",而会空出执行线程,直至操作完成 ...

  8. 高效PHP编程

    1.尽量静态化: 如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍.   当然了,这个测试方法需要在十万级以上次执行,效果才明显.   其实静态方法和非静 ...

  9. js动画(三)

    咳咳咳咳,感冒了感冒了,鼻塞,蓝瘦啊!嘴巴也开裂,哎,心疼自己.想到这是第三只唇膏了!只怪,放荡不倔爱自由, 行驶在冷风路上么,北风那个吹啊吹啊吹啊,好了,发神经发完了,接下来进入正题,严肃脸.(字数 ...

  10. Selinux是什么?

    在新的基于RHEL一般都自带了selinux,多数情况下我们把selinux禁用了,事实上既然RHEL要集成它,必然有他的优点和长处,我们通过下文来了解selinux,也许你会喜欢用上它. 英文原文来 ...