当前位置: 首页 > 后端技术 > Python

墨尔本大学COMP10001课程作业解析

时间:2023-03-25 23:51:24 Python

题目:实现电子投票自动计票功能的程序,对不同的投票方案有很好的支持。分析:背景:大选,每个选民只能支持他最喜欢的候选人,一票,选票最多的候选人赢得了选举。选项1:FirstPastthePost实现first_past_the_post(votes)函数。参数votes是一个存储投票信息的列表,投票信息是代表候选人姓名的一系列字符。考虑使用遍历列表的方法,分别统计每个候选人的出现频率,比较大小后返回出现频率最高的人的名字;如果有多个候选人的票数相同,则返回“平局”。方案二:SecondPreference实现了second_preference(votes)函数,参数votes是一个存储投票信息的doublelist。该方案用于解决方案一中获胜者投票<=50%的情况。首先,根据第一选择统计候选人的频率。得票最多的不超过一半,第一选择中得票最少的候选人被删除(有多个候选人按候选人的字母顺序被删除),其余候选人的票数为算了。Number(第一选择+第二选择),返回最高的名字,如果超过一个,返回“tie”。方案三:MultiplePreferences实现了multiple_preferences(votes)函数,参数votes是一个存储投票信息的doublelist。方案2只针对一轮,方案3是多轮的改进版。例子中采用5个自愿投票,方法与方案二的方法类似。涉及知识点:pythonlist、doublelist、circularguard?:WHJ980416