Python分析欧冠小组赛极限情况

来源:互联网 发布:淘宝怎么购物啊 编辑:程序博客网 时间:2024/04/30 16:33

小编最近闲来无事,在自学Python,主要是在B站上看小甲鱼的《零基础入门学习Python》视频教程(https://www.bilibili.com/video/av4050443/),然后在广州图书馆借了两本Python的书(此处真诚结交各位Pythoner)。就这样边学边看跟着瞎搞了半个多月,小编寻思着这样跟着别人屁股后面走也学不到啥东西,再说子曾经曰过:不仅要动眼还要动手。俺就想自己编一些程序玩玩,再加上自己是个看球三十多年的老球迷了(一般我不轻易说这个),也常年混迹于百度贴吧和虎扑,年轻的时候更是对欧冠情有独钟,记得以前大三的时候周三早上一二节有课,但我仍然经常是看完欧冠眯一会儿然后满血就去上课(此处应该有鲜花),基于以上乱七八糟的原因,小编就想着用Python编个程序掰扯掰扯欧冠小组赛(首先声明小编刚刚接触Python,不当的地方大佬们求轻喷)。

其实关于欧冠小组赛出线情况的一些问题,比如理论上小组第二的最低积分(最低出线的分数)、小组第三的最高积分(最悲催的出局分数)、最低的小组第一积分等等,这些问题小编之前自己用笔也算过,这次趁着学习Python的机会把这些问题用程序再验证一遍。

好了废话不多说下面直接进入正题。首先设四支队伍分别为A、B、C、D,每场比赛的结果有三种,分别是胜、平、负,胜者积分+3,平局积分+1,负者不得分(这里不考虑进球数,也不考虑主客场),那么四支队伍一轮比赛共有两场比赛,总共有9种比赛结果,假设第一轮是由A对阵B,C对阵D,那把这一轮比赛的所有结果存放到一个二维列表中去,其结果是:[[3,0,3,0],[3,0,1,1],[3,0,0,3],[1,1,3,0],[1,1,1,1],[1,1,0,3],[0,3,3,0],[0,3,1,1],[0,3,0,3]],比如[3,0,1,1]表示A赢了B,且C平了D,其余以此类推;第一轮结果如此,则第二轮,第三轮,...,第六轮情况类似,只不过比赛顺序变了,把六轮的比赛结果(即6个二维列表)放入到循环中生成所有比赛结果,比赛结果共有531441种,得出所有结果之后对结果进行排序,然后提取所需要的数据进行分析,得到最终的结果。

 下图是程序所得到的最终的结果,从图中可以得到以下几个结论:

1.小组第三理论最高分的结果为:[0,12,12,12]

       即三支队伍同积12分,被称为最悲催的出局者,这种极限情况曾经出现过两次,分别是1997/98赛季的巴黎圣日耳曼、2013/2014赛季的那不勒斯,笔者对巴黎圣日耳曼的那次不了解,但是对那不勒斯那次则是印象很深刻,笔者当时看过其中几场比赛的直播,记得当时那不勒斯和阿森纳、多特蒙德是打得火花四溅啊,最后一轮中那不勒斯自己作死,他们以为多特蒙德要输,所以在场上各种浪,结果最后人家多特蒙德赢了,最终那不勒斯一净胜球劣势而饮恨出局。

       另外必须要说明的是出现[0,12,12,12]这种情况共有40种(下同,故不再赘述),这里为了方便只列出一种:[3, 0, 3, 0] [3, 3, 0, 0] [3, 3, 0, 0], [0, 3, 3, 0] [0, 3, 3, 0] [3, 0, 3, 0]。

我来解释下上面这种对阵结果:

第一轮:A胜B,C胜D; 第二轮: A胜C,B胜D;第三轮: A胜D,B胜C;

第四轮:A输B,C胜D; 第五轮: A输C,B胜D;第六轮: A胜D,B输C。

2.小组第二理论最低分的结果为:[4,4,4,18]

       这种被称为最幸运的出线者,不过很遗憾,纵观欧冠60余年历史还没有出现过这种极限情况,我印象中的最低分好像是某年罗马是5分还是6分出线,不过这已是非常之幸运了。下面是出现[4,4,4,18]这种情况的具体结果:[3, 0, 1, 1] [3, 1, 0, 1] [3, 1, 1, 0], [3, 0, 1, 1] [3, 1, 0, 1] [3, 1, 1, 0],读者可以根据上面的说明自行解释,这里不再赘述。

3.小组第一理论最低分的结果为:[6,6,6,6]

      这种情况非常简单,只需每轮所有比赛全部打平即可,不过很明显这种情况基本上不会出现。

4.小组第二理论最高分的结果为:[0,6,15,15]

     小组第二的理论最高分是15分,具体对阵结果是:[3, 0, 3, 0] [3, 3, 0, 0] [3, 3, 0, 0] [0, 3, 3, 0] [3, 3, 0, 0] [3, 3, 0, 0],但是需要说明的是结果不止一种,因为第三、第四名的结果可能不一样(最高分还是15分),这里只列举出一种结果,我记得13/14年欧冠曼城和拜仁同一组,最终曼城和拜仁同积15分,曼城以净胜球劣势屈居第二。

5.小组第三理论最低分的结果为:[2,2,12,18]

       我们知道欧冠小组赛中积分第三的队伍可以去踢欧联杯,上面我们分析了小组第三的理论最高分,这里我们分析小组第三的理论最低分,答案是:2分,也就是说理论上只要拿两个积分就可以踢欧联,超级羡慕有木有!由于小编对小组第三关注比较少,因此不知道欧冠历史上有没有出现过这种情况。

     好了,以上就是小编利用最近自学的Python所编写的欧冠小组赛极限情况的分析,由于小编是Python新手,还请大佬们轻喷,另外小编还想用Python分析下英超第四名的理论最低分和保级的理论最低分,不过按照我上面的思路显然是行不通的,笔者由于学识有限暂时没想到要如何处理,还请各位大佬多指点。

        下面列出小编的部分程序,不当的地方求大佬斧正,同时请教大神我程序里的for循环那里应该怎么优化?我一直想优化但是不知道如何解决!







原创粉丝点击