java投票排名怎么弄_投票/排名排名对方法

目前我尝试了解Ranked Pairs方法 . 从维基百科条目我不知道如何创建成对比较矩阵 . 这个explanation帮助我理解了比较两对的一种方法 - 但是,我不确定这是否与wiki中说的完全相同 . 我的第一个问题是,根据1,2中对的比较是否有效?

我设法使2中的解释适应R代码:

在下面的(不切实际的)例子中,候选人(行)比选民(列)更多,但所有选民都给每个候选人排名(完整排名)

# some random example

random.example

dimnames = list(candidates = paste("c", 1:10, sep=""),

voters = paste("v", 1:5, sep="")))

rmat

然后使用Ranked Pairs方法对秩矩阵进行排序

pm

return(apply(rmat , MARGIN=1, function(y) {

return(sum(x > y) - sum(x < y))

}))

})

sorted

return(c(like = sum(x > 0),

dislike = numberOfVoters - sum(x < 0),

ties = numberOfVoters - (sum(x == 0) - 1)))

}, numberOfVoters = ncol(rmat)))

评论 sorted :如果我理解这一点,那么我们需要先按 like ,然后 dislike ,然后按 ties 进行排序 . 我重新分配了 dislike 和 ties ( numberOfVoters )的值,以便我可以将它用作"number" . 这导致我的下一个问题:排序和确定胜利者 . 我想,但我不确定,在哪里我可以按照|候选人|的基数来排序:

scores

所以按 scores 排名(越高越好)给我们排名 . 对?

第三个问题涉及确定候选人排名的相互关系 . 按分数排名为我们提供了候选人的排名列表 . 但维基百科1告诉我们,对于真正的排名,应该通过从列表中删除获胜者来重新计算整个过程,以确定下一个获胜者 . 我不明白为什么这可能会返回不同的排名 . 有人举个简单的例子吗?

非常感谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值