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

news2024/11/26 4:47:01

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名片即可

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【K8S基础】-k8s的核心概念pod

一、Pod 是什么 1.1 Pod 的定义和概念 在Kubernetes中&#xff0c;Pod是创建或部署的最小/最简单的基本单位。一个Pod代表着集群上正在运行的一个进程&#xff0c;它封装了一个或多个应用容器&#xff0c;并且提供了一些共享资源&#xff0c;如网络和存储&#xff0c;每个Pod…

图片速览 PoseGPT:基于量化的 3D 人体运动生成和预测(VQVAE)

papercodehttps://arxiv.org/pdf/2210.10542.pdfhttps://europe.naverlabs.com/research/computer-vision/posegpt/ 方法 将动作压缩到离散空间。使用GPT类的模型预测未来动作的离散索引。使用解码器解码动作得到输出。 效果 提出的方法在HumanAct12&#xff08;一个标准但小规…

单片机计数功能

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、计数器是什么&#xff1f;1.1 应用 二、计数器原理框图及对输入信号的要求2.1 原理框图2.2对输入信号的要求 三、使用步骤3.1 配置为计数模式3.2 装初值3.3…

选择排序、快速排序和插入排序

1. 选择排序 xuanze_sort.c #include<stdio.h> #include<stdlib.h>//选择排序void xuanze_sort(int arr[],int sz){//正着for(int i0;i<sz;i){//外层循环从第一个数据开始依次作为基准数据for(int j i1;j<sz;j){//int j i1 因为第一个数据作为了基准数据&…

蓝桥杯嵌入式——KEY

CUBE里将这几个引脚配置成GPIO输入模式&#xff0c;再同时选中&#xff0c;配置成上拉&#xff0c;如下图&#xff1a; 同时配置定时器&#xff0c;定时10ms&#xff0c;每10ms扫描一次按键&#xff0c;计算公式&#xff1a;80 000 000 / 80 / 10000 100HZ 10ms&#xff0c;配…

Amazon SageMaker机器学习之旅的助推器

授权声明&#xff1a;本篇文章授权活动官方亚马逊云科技文章转发、改写权&#xff0c;包括不限于在 亚马逊云科技开发者社区, 知乎&#xff0c;自媒体平台&#xff0c;第三方开发者媒体等亚马逊云科技官方渠道。 一、前言 在当今的数字化时代&#xff0c;人工智能和机器学习已经…

Spring Boot自动装配原理以及实践

了解自动装配两个核心 Import注解的作用 Import说Spring框架经常会看到的注解&#xff0c;它有以下几个作用: 导入Configuration类下所有的bean方法中创建的bean。导入import指定的bean&#xff0c;例如Import(AService.class)&#xff0c;就会生成AService的bean&#xff0…

Gitlab仓库推送到Gitee仓库的一种思路

文章目录 Gitlab仓库推送到Gitee仓库的一种思路1、创建Gitee的ssh公钥&#xff08;默认已有Gitlab的ssh公钥&#xff09;2、添加Gitlab远程仓库地址3、添加Gitee远程仓库地址4、拉取Gitlab远程仓库指定分支到本地仓库指定分支&#xff08;以test分支为例&#xff09;5、推送本地…

C++11特性:可调用对象以及包装器function的使用

在C中存在“可调用对象”这么一个概念。准确来说&#xff0c;可调用对象有如下几种定义&#xff1a; 是一个函数指针&#xff1a; int print(int a, double b) {cout << a << b << endl;return 0; } // 定义函数指针 int (*func)(int, double) &print…

【MAC】M2 安装mysql

一、docker下载地址 下载地址 二、安装docker完成 三、安装mysql 一、拉取镜像 # 拉取镜像 docker pull mysql# 或者 docker pull mysql:latest# 以上两个命令是一致的&#xff0c;默认拉取的就是 latest 版本的# 我们还可以用下面的命令来查看可用版本&#xff1a; docker…

[德人合科技]——设计公司 \ 设计院图纸文件数据 | 资料透明加密防泄密软件

国内众多设计院都在推进信息化建设&#xff0c;特别是在异地办公、应用软件资产规模、三维设计技术推广应用以及协同办公等领域&#xff0c;这些加快了业务的发展&#xff0c;也带来了更多信息安全挑战&#xff0c;尤其是对于以知识成果为重要效益来源的设计院所&#xff0c;防…

Docker单点部署[8.11.3] Elasticsearch + Kibana + ik分词器

文章目录 一、Elasticsearch二、Kibana三、访问四、其他五、ik分词器第一种&#xff1a;在线安装第二种&#xff1a;离线安装 Elasticsearch 和 Kibana 版本一般需要保持一致才能一起使用&#xff0c;但是从 8.x.x开始&#xff0c;安全验证不断加强&#xff0c;甚至8.x.x之间…

【每日一题】—— C. Largest Subsequence(Codeforces Round 915 (Div. 2))(规律、字符串处理)

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;每日一题 &#x1f48c;其他专栏&#xff1a; &#x1f534; 每日反刍 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓称…

制作一个多行时正确宽度的Textview,Android Textview 换行时宽度过长 右侧空白区域挤掉页面元素的解决方案

优化 Android 布局&#xff1a;创建自适应宽度的 TextView 引言 在Android应用开发中&#xff0c;布局优化是提升应用性能和用户体验的关键环节之一。特别是对于那些内容密集型的应用&#xff0c;如何高效地展示和管理文本内容成为了一个挑战。最近&#xff0c;在处理一个布局…

市场全局复盘 20231218

昨日回顾: SELECT CODE,成交额排名,净流入排名,代码,名称,DDE大单金额,涨幅,主力净额,DDE大单净量,CONVERT(DATETIME, 最后封板, 120) AS 最后封板,涨停分析,_3日涨幅百分比,连板天,封单额,封单额排名,DDE散户数量,总金额,获利盘 FROM dbo.全部A股20231218_ALL WHERE 连板天…

社交网络分析4(下):社交网络链路预测分析、LightGBM框架、LLSLP方法(LightGBM 堆叠链路预测)、堆叠泛化 、社交网络链路预测分析的挑战

社交网络分析4 写在最前面LightGBMLightGBM简介GBDT的核心概念和应用LightGBM的特点LightGBM与GBDT的比较 LightGBM的原理与技术GBDT的传统算法LightGBM的创新算法 GOSS&#xff08;Gradient-based One-Side Sampling&#xff09;算法解析概念和工作原理算法的逻辑基础GOSS算法…

PIC单片机项目(4)——基于PIC16F877A的温度光照检测装置

1.功能设计 基于PIC16F877A单片机&#xff0c;使用DS18B20进行温度测量&#xff0c;使用光敏电阻进行光照测量&#xff0c;将测量值实时显示在LCD1602屏幕上&#xff0c;同时可以设定光照阈值和温度阈值。当温度大于阈值&#xff0c;则蜂鸣器报警&#xff0c;当光照小于阈值&am…

EnvoyFilter API

目录 原文链接 https://onedayxyy.cn/docs/EnvoyFilter-API 本节实战 实战名称&#x1f6a9; 实战&#xff1a;EnvoyFilter API-全局范围-2023.12.18(测试成功)&#x1f6a9; 实战&#xff1a;EnvoyFilter API-配置优先级-2023.12.18(测试成功)&#x1f6a9; 实战&#xff1a…

开发企业展示小程序的关键步骤和技巧

随着移动互联网的快速发展&#xff0c;小程序已经成为企业展示形象、推广产品和服务的重要工具。拥有一个优秀的小程序可以帮助企业提高品牌知名度&#xff0c;吸引更多潜在客户&#xff0c;提升用户体验。以下是拥有一个展示小程序的步骤&#xff1a; 确定需求和目标 首先&am…

实时时钟(RTC)的选择与设计:内置晶体与外置晶体的优缺点对比

实时时钟(RTC)作为一种具备独立计时和事件记录功能的设备&#xff0c;现已广泛应用于许多电子产品中&#xff0c;并对时钟的精度要求越来越高。根据封装尺寸、接口方式、附加功能、时钟精度和待机功耗等因素进行分类&#xff0c;市场上有各种种类的RTC产品可供选择。 而在设计…