阿八博客
  • 100000+

    文章

  • 23

    评论

  • 20

    友链

  • 最近新加了很多技术文章,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

墨尔本大学COMP10001课业解析

欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/jsh/2019/0912/112685.html

题意:
编程实现电子投票自动计数功能,对不同的投票方案有良好的支持性
解析:
背景:
大会选举,每位选民只能支持自己最喜欢的候选人,一人一票,获得最多选票的候选人赢得选举

方案一:First Past the Post
实现first_past_the_post(votes)函数,参数votes是一个存储选票信息的列表,是一系列代表候选人名字的字符

考虑用遍历列表的方法分别统计每个候选人的频率,比较大小后返回频率最高者的名字;存在最高得票的多个候选人票数一样的情况,返回 “tie”

方案二:Second Preference
实现second_preference(votes)函数,参数votes是一个存储
选票信息的二重列表
此方案用来解决方案一中,胜出者选票<=50%的情况
首先按第一志愿统计候选人频率,最高得票不过半,删掉第一志愿中得票最低的候选人(有多个按候选人首字母次序删除较前的候选人),并且统计剩余候选人得票数(第一志愿+第二志愿),返回最高者名字,若有多个返回 “tie”

方案三:Multiple Preferences
实现multiple_preferences(votes)函数,参数votes是一个存储选票信息的二重列表
方案二只进行一轮,方案三是多轮的改进版
样例中采取5志愿投票,类似方案二的方法进行

涉及知识点:
python 列表,二重列表,循环
卫⭐:WHJ980416

相关文章

暂住......别动,不想说点什么吗?
  • 全部评论(0
    还没有评论,快来抢沙发吧!