如果结果是决定性的,停止投票/投票会议
我试图创建一个算法来停止投票/投票会议,如果它有一个决定性的结果,而不等待每个人。在创建投票时,已知/定义有多少人可以投票。投票问题/选项计数也是众所周知的。每个人都可以投一票给一张选票。
例如,定义为
Maximum votes: 5
Poll options: 3如果三人投票赞成“选项1",我们可以结束投票会议而不等待其他2,因为没有什么可以改变”选项1“获胜的结果。(备选方案1将以60%、80%或100%的优势获胜)
我想出以下几点:如果(赢得选项投票数-第二位选项投票数)>剩余选票计数,停止投票。
我不确定它是否正确,我想要求验证和/或一个不同的算法。
一些测试:
Max votes: 6, current votes: 4 as
Option 1: 3
Option 2: 1
Option 3: 0
3 - 1 is NOT greater than 2, so we can't stop the voting.
Validation: remaining 2 people may vote for Option 2, thus changing the result (a tie).
Max votes: 7, current votes: 6 as
Option 1: 4
Option 2: 2
Option 3: 0
4 - 2 > 1, OK so we can stop the voting.
Validation: remaining vote can't change the result, Option 1 already won.谢谢
发布于 2022-02-11 16:29:00
我认为,如果你选择前两名的投票选项,并检查差距是否大于剩下的票数,那么它就会获胜。下面是一个伪代码示例(假设前两个选项是选择最多的选项):
if ( (option1 - option2) > (maxVotes - currentVotes) ) {
endPoll();
}https://stackoverflow.com/questions/71081971
复制相似问题