2018年第七届数学建模国际赛小美赛B题世界杯足球赛的赛制安排解题全过程文档及程序

2018年第七届数学建模国际赛小美赛

B题 世界杯足球赛的赛制安排

原题再现:

  有32支球队参加国际足联世界杯决赛阶段的比赛。但从2026年开始,球队的数量将增加到48支。由于时间有限,一支球队不能打太多比赛。因此,国际足联提议改变比赛形式。每组将从4支球队改为3支球队,前两支球队有资格进入第二轮。为了保持比赛的激情,我们不希望有太多的比赛结果不影响球队的出线。为了比赛的公平性,我们不希望有太多的游戏认为串通对双方都有利。我们也希望比赛的最终结果不要过于包含运气因素。请分析这个问题,并给出最佳的竞争安排体系。最终结果需要包括以下问题的答案:

  1.每组球队的数量以及谁可以进入第二轮。

  2.预先安排比赛顺序的方法。

  3.决赛结果对国际足联可口可乐排名的影响。

整体求解过程概述(摘要)

  随着世界杯足球赛参赛队伍的不断扩大,比赛安排制度受到了广泛关注。因此,研究竞赛安排制度的公平性和实用性具有重要意义。本文以博弈过程为基础,重点分析了均衡、比赛顺序和结果对FIFA可口可乐排名的影响。

  关于第一个问题,我们参考现有的系统,假设两种安排,即分组阶段和淘汰阶段。一个方案是将3个小组分成一个小组。每组前两名进入第二轮。另一组则有四个小组。每组前两名和第三名前八名进入下一轮。通过建立均衡指数,讨论了每种安排的个数,并进行了均衡分析。我们模拟了1000次博弈,讨论了总均衡的均衡度以及最后16、8、4三个阶段的均衡度。结果表明,上述第一竞争系统具有较少的匹配和较高的均衡度。

  根据问题2,我们采用第一种竞赛制度。对小组赛的计分制进行了详细的阐述,得出了小组赛的胜负必须确定的结论。在这个例子中,我们分析了小组赛和淘汰赛。结果表明,为了避免各参赛队之间的勾结,保证比赛的公平性,有必要在小组赛阶段安排强队参加前两轮比赛。同时在基因敲除阶段采用交叉分布的方法。

  对于问题三,根据排名和团队排名的变化建立了影响因素,称为上升因素和下降因素。同时基于match system one,通过单局模拟,证明了博弈结果在排名上的变化可以用上升因子和下降因子来表示。我们又进行了1000次模拟,结果表明,不同的比赛结果对排名有不同的影响。通过分析影响排名上升和下降的因素,得出比赛成绩对排名的影响。

模型假设:

  比赛中各队获胜率确定,不受其他因素干扰;

  竞争过程不受外界因素干扰;

  每场比赛均由竞赛规则决定,不得弃权。

问题重述:

  我们如何确定每个小组的队伍数量以及进入第二轮的队伍?

  当我们设计一个计划时,我们必须考虑几个因素:比赛总数、公平性和得分系统。根据球队总数的增加,我们不能用过去的方法来安排整个比赛。我们参考现有的系统,假设了两种安排,即分组阶段和淘汰阶段。一个方案是将3个小组分成一个小组。每组前两名进入第二轮。另一组则有四个小组。每组前两名和第三名前八名进入下一轮。通过建立均衡指数,讨论了每种安排的个数,并进行了均衡分析。

  如何确定下一场比赛的最佳顺序?

  1) 从组匹配的角度来看:

  对于避免合谋问题,我们的解决方案是允许较高级别的团队在群体博弈阶段与其他两个团队竞争。

  2) 从淘汰赛阶段来看:

  为了减少运气因素的影响,我们保证了在第二轮比赛中与任何球队竞争的可能性。从每个级别中选择一个团队组成一个团队的随机性是显著的。

  在淘汰赛阶段,采用交叉分布的方法确定一队将面对的对手。

  影响因素的量化分析

  在不考虑比赛偶然性的情况下,根据排名和球队排名的变化建立了影响因素,即上升因素和下降因素。我们对比赛前后球队的排名进行了定性分析,并用权重来表示球队排名变化的程度。结果表明,所建立的模型能够分析决赛结果对FIFA可口可乐排名的影响。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

function effect
global cocacola
global a
global G
global effall
eff=zeros(48,2);
for i=1:48
    b=cocacola(i,2)
    c=find(a(:,2)==b)
    if 1<=i&&i<=16
        if 1<=c&&c<=16
            d=(i-c)*1;
            if d>0
            eff(i,1)=eff(i,1)+d;
            else 
             eff(i,2)=eff(i,2)+d;
            end
        else if 17<=c&&c<=32
               d=(i-16)*1+(16-c)*4;
               eff(i,2)=eff(i,2)+d;
            else if 33<=c&&c<=48
                      d=(i-16)*1-16*4+(32-c)*8;
                      eff(i,2)=eff(i,2)+d;
                   end
                end
            end
    end
    if 17<=i&&i<=32
        if 1<=c&&c<=16
            d=(i-17)*1+(17-c)*4;
            eff(i,1)=eff(i,1)+d;
        else if 17<=c&&c<=32
               d=(i-c)*1;
                   if d>0
                      eff(i,1)=eff(i,1)+d;
                   else 
                      eff(i,2)=eff(i,2)+d;
                   end
            else if 33<=c&&c<=48
                      d=(32-i)*1+(c-32)*4;
                      eff(i,2)=eff(i,2)+d;
                end
            end
        end
    end
    if 33<=i&&i<=48
        if 1<=c&&c<=16
            d=(i-33)*1+16*4+(17-c)*8;
            eff(i,1)=eff(i,1)+d;
        else if 17<=c&&c<=32
               d=(i-33)*1+(33-c)*4;
               eff(i,1)=eff(i,1)+d;
            else if 33<=c&&c<=48
                      d=(i-c)*1;
                   if d>0
                      eff(i,1)=eff(i,1)+d;
                   else 
                      eff(i,2)=eff(i,2)+d;
                   end
                end
            end
        end
    end
end
 effall(G,:)=sum(eff);
function Groupcompetition
global team
global xiaozu
global taotai16
for i=1:16
    a(1:3,:)=xiaozu(3*i-2:3*i,:);
        b=rand*(a(1,4)+a(2,4));
        if b<=a(1,4)
            a(1,5)=a(1,2);        %第一次 获胜队伍
            a(1,6)=a(2,2);        %第一次 失败队伍
            a(1,7)=a(1,7)+1;       %1队加分
            c=round(1+2*rand);  %进球
            d=round(c*rand-1);    %丢球
            a(1,8)=c+a(1,8);   %1队进球
            a(1,9)=d+a(1,9);      %1队丢球
            a(2,8)=d+a(2,8);     %2队进球
            a(2,9)=c+a(2,9);      %2队丢球
        else
            a(1,6)=a(1,2);
            a(1,5)=a(2,2);
            a(2,7)=a(2,7)+1;
            c=round(1+2*rand);  %进球
            d=round((c-1)*rand-1);    %丢球
            a(2,8)=c+a(2,8);   %2队进球
            a(2,9)=d+a(2,9);      %2队丢球
            a(1,8)=d+a(1,8);     %1队进球
            a(1,9)=c+a(1,9);      %1队丢球      
        end
         b=rand*(a(1,4)+a(3,4));
        if b<=a(1,4)
            a(2,5)=a(1,2);
            a(2,6)=a(3,2);
            a(1,7)=a(1,7)+1;
            c=round(1+2*rand);  %进球
            d=round((c-1)*rand);    %丢球
            a(1,8)=c+a(1,8);   %1队进球
            a(1,9)=d+a(1,9);      %1队丢球
            a(3,8)=d+a(3,8);     %3队进球
            a(3,9)=c+a(3,9);      %3队丢球
        else
            a(2,6)=a(1,2);
            a(2,5)=a(3,2);
            a(3,7)=a(3,7)+1;
            c=round(1+2*rand);  %进球
            d=round((c-1)*rand-1);    %丢球
            a(3,8)=c+a(3,8);   %3队进球
            a(3,9)=d+a(3,9);      %3队丢球
            a(1,8)=d+a(1,8);     %1队进球
            a(1,9)=c+a(1,9);      %1队丢球
        end
            b=rand*(a(2,4)+a(3,4));
        if b<=a(2,4)
            a(3,5)=a(2,2);
            a(3,6)=a(3,2);
            a(2,7)=a(2,7)+1;
            c=round(1+2*rand);  %进球
            d=round((c-1)*rand-1);    %丢球
            a(2,8)=c+a(2,8);   %2队进球
            a(2,9)=d+a(2,9);      %2队丢球
            a(3,8)=d+a(3,8);     %3队进球
            a(3,9)=c+a(3,9);      %3队丢球
        else
            a(3,6)=a(1,2);
            a(3,5)=a(2,2);
            a(3,7)=a(3,7)+1;
            c=round(1+2*rand);  %进球
            d=round((c-1)*rand-1);    %丢球
            a(3,8)=c+a(3,8);   %2队进球
            a(3,9)=d+a(3,9);      %2队丢球
            a(2,8)=d+a(2,8);     %3队进球
            a(2,9)=c+a(2,9);      %3队丢球
        end
       a(:,10)=a(:,8)-a(:,9);    %净胜球
       for j=1:3
            m=a(j,5);
            n=find(team(:,1)==m);
            team(n,5)=team(n,5)+1;
       end
       xiaozu(3*i-2:3*i,:)=a;
       for j=1:3
           if a(j,7)==2
               taotai16(2*i-1,:)=a(j,:);
               for k=1:3
                   if a(k,7)==1
                   taotai16(2*i,:)=a(k,:);
                   end
               end
           end
       end
       for m=1:2
            for k=m+1:3
                 if a(m,10)<a(k,10)
                    e=a(m,:);
                    a(m,:)=a(k,:);
                    a(k,:)=e;
                 end
            end
       end
taotai16(2*i-1,:)=a(1,:);
taotai16(2*i,:)=a(2,:);
end
        taotai16;
        xiaozu;
        team;
xuni=taotai16;
for i=1:32
    for j=i:32
        if xuni(i,4)<xuni(j,4)
            a=xuni(i,:);
            xuni(i,:)=xuni(j,:);
            xuni(j,:)=a;
        end
    end
end
for i=1:32
    if (1<=i)&&(i<=8)   
        xuni(i,3)=1;
        else if (9<=i)&&(i<=16)
                xuni(i,3)=2;
                else if (17<=i)&&(i<=24)
                        xuni(i,3)=3;
                      else if (25<=i)&&(i<=32)  
                              xuni(i,3)=4;
                          end
                    end
            end
    end
end
for i=1:32
    a=find(xuni(i,2)==taotai16(:,2));
    taotai16(a,11)=xuni(i,3);
end
xuni;
taotai16;
        team;
function Semifinal
global team
global taotai2
global taotai
    a=rand*(taotai2(1,4)+taotai2(3,4));
    if a<taotai2(1,4)
       taotai(1,:)= taotai2(1,:);
       taotai(3,:)=taotai2(3,:);
    else
       taotai(1,:)= taotai2(3,:);
       taotai(3,:)=taotai2(1,:);
    end
    a=rand*(taotai2(2,4)+taotai2(4,4));
    if a<taotai2(2,4)
       taotai(2,:)= taotai2(2,:);
       taotai(4,:)=taotai2(4,:);
    else
       taotai(2,:)= taotai2(4,:);
       taotai(4,:)=taotai2(2,:);
    end
for j=1:2
     m=taotai(j,2);
     n=find(team(:,1)==m);
     team(n,9)=team(n,9)+1;
end
taotai2;
taotai;
team;
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/255759.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言之递归函数

目录 函数和类型 阶乘 █递归函数调用 函数中可以调用和该函数自身完全相同的函数&#xff0c;这样的调用方式称为递归函数调用&#xff0c;下面我们就来学习相关的基础知识。 函数和类型 所谓递归&#xff08;recursive&#xff09;&#xff0c;就是将自己包含在内&#x…

Excel只读模式带有密码,怎么办?

打开Excel文件之后发现是只读模式&#xff0c;并且excel只读模式是带有密码的&#xff0c;该如何取消带有密码的excel只读文件呢&#xff1f; 带有密码的只读模式&#xff0c;是设置了excel文件的修改权限&#xff0c;取消修改权限&#xff0c;我们需要先输入密码&#xff0c;…

解决docker alpine /bin/sh: ./main: not found

解决docker alpine /bin/sh: ./main: not found golang中编译之后的二进制文件部署在alpine镜像中出现了not found问题解决这种情况是因为动态链接库位置错误导致的&#xff0c;alpine镜像使用的是musl libc而不是gun libc。因而动态链接库的位置不一致。在基础镜像内执行&…

Kotlin Multiplatform的现状—2023年网络研讨会

Kotlin Multiplatform的现状—2023年网络研讨会 在2023年&#xff0c;Kotlin Multiplatform因其开发、当前状态和未来潜力而受到了相当大的关注。随着越来越多的开发者对采用KMP进行跨平台解决方案表示兴趣&#xff0c;JetBrains在11月下旬推出了一系列网络研讨会作为回应。首…

python使用ctypes访问Windows原生API

在Windows系统中&#xff0c;C语言编写的动态链接库&#xff08;DLL&#xff09;是一种可由多个程序同时使用的代码和数据共享库。DLL文件包含了一些可以被其他程序调用的函数和数据。这些DLL文件通常与应用程序一起发布&#xff0c;并在需要时被加载到内存中&#xff0c;以便应…

创建型模式之抽象工厂模式

一、概述 1、抽象工厂模式&#xff1a;提供一个创建一系列相关或相互依赖对象的接口&#xff0c;而无需指定它们具体的类。 2、抽象工厂模式&#xff1a;一个工厂可以生产一系列产品&#xff08;一族产品&#xff09;&#xff0c;极大减少了工厂类的数量 3、抽象工厂模式&am…

2023大湾区汽车创新大会在深圳坪山开幕

12月15日&#xff0c;2023大湾区汽车创新大会在深圳坪山开幕。 本次大会是由广东省科学技术厅、深圳市发展和改革委员会、深圳市工业和信息化局、中共深圳市新能源和智能网联汽车产业链委员会、坪山区人民政府指导&#xff0c;北京理工大学深圳汽车研究院、广东省大湾区新能源汽…

SpringBoot Whitelabel Error Page 报错--【已解决】

springboot 报错信息如下 这个报错页面就是个404 &#xff0c;代表你访问的url 没有对应的的requestmapping 其实没啥影响的一个问题&#xff0c;但是看到Error 就是不爽&#xff0c;改了他丫的 解决方法如下 一、调整application.properties配置【治标不治本】 server.err…

【PHP入门】2.1-运算符

-运算符- 运算符&#xff1a;operator&#xff0c;是一种将数据进行运算的特殊符号&#xff0c;在PHP中一共有十种运算符之多。 2.1.1赋值运算符 赋值运算&#xff1a;符号是“”&#xff0c;表示将右边的结果&#xff08;可以是变量、数据、常量和其它运算出来的结果&#…

ELK(九)—logstash

目录 简介安装部署测试 配置详解编写配置文件连接elasticsearch将数据推送到elasticsearch中。 简介 Logstash 是一个开源的服务器端数据处理管道&#xff0c;由 Elastic 公司维护和开发。它被设计用于从不同来源收集、处理和转发数据&#xff0c;以供 Elasticsearch 进行存储…

〖大前端 - 基础入门三大核心之JS篇(57)〗- 继承

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;哈哥撩编程&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xff0c;目前在公司…

带你学C语言~指针(2)

目录 &#x1f3c9;前言 &#x1f680; 数组名的理解 &#x1f680;使用指针访问数组 ✈一维数组传参的本质 ✈冒泡排序 &#x1f3c6;二级指针 &#x1f3c6;指针数组 &#x1f3c6;指针数组模拟二维数组 &#x1f389;结束语 &#x1f3c9;前言 上一章&#xff0c;小…

torch.gather(...)

1. Abstract 对于 pytorch 中的函数 torch.gather(input, # (Tensor) the source tensordim, # (int) the axis along which to indexindex, # (LongTensor) the indices of elements to gather*,sparse_gradFalse,outNone ) → Tensor有点绕&#xff0c;很多博客画各…

Webpack安装及使用

win系统 全局安装Webpack及使用 前提&#xff1a;使用Webpack必须安装node环境&#xff0c;建议使用nvm管理node版本。 1&#xff1a;查看自己电脑是否安装了node 2&#xff1a;npm install webpack版本号 -g 3&#xff1a;npm install webpack-cli -g -g:表示全局安装 4&…

ElasticSearch单机或集群未授权访问漏洞

漏洞处理方法&#xff1a; 1、可以使用系统防火墙 来做限制只允许ES集群和Server节点的IP来访问漏洞节点的9200端口&#xff0c;其他的全部拒绝。 2、在ES节点上设置用户密码 漏洞现象&#xff1a;直接访问9200端口不需要密码验证 修复过程 2.1 生成认证文件 必须要生成…

力扣225. 用队列实现栈【附进阶版】

文章目录 力扣225. 用队列实现栈示例思路及其实现两个队列模拟栈一个队列模拟栈 力扣225. 用队列实现栈 示例 思路及其实现 两个队列模拟栈 队列是先进先出的规则&#xff0c;把一个队列中的数据导入另一个队列中&#xff0c;数据的顺序并没有变&#xff0c;并没有变成先进后…

【转载】【Unity】WebSocket通信

1 前言 Unity客户端常用的与服务器通信的方式有socket、http、webSocket。本文主要实现一个简单的WebSocket通信案例&#xff0c;包含客户端、服务器&#xff0c;实现了两端的通信以及客户端向服务器发送关闭连接请求的功能。实现上没有使用Unity相关插件&#xff0c;使用的就是…

【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 分发饼干 class Solutio…

换热站数字孪生 | 图扑智慧供热 3D 可视化

换热站作为供热系统不可或缺的一部分&#xff0c;其能源消耗对城市环保至关重要。在双碳目标下&#xff0c;供热企业可通过搭建智慧供热系统&#xff0c;实现供热方式的低碳、高效、智能化&#xff0c;从而减少碳排放和能源浪费。通过应用物联网、大数据等高新技术&#xff0c;…

MongoDB中的关系

本文主要介绍MongoDB中的关系。 目录 MongoDB的关系嵌入关系引用关系 MongoDB的关系 MongoDB是一个非关系型数据库&#xff0c;它使用了键值对的方式来存储数据。因此&#xff0c;MongoDB没有像传统关系型数据库中那样的表、行和列的概念。相反&#xff0c;MongoDB中的关系是通…