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:48b=cocacola(i,2)c=find(a(:,2)==b)if 1<=i&&i<=16if 1<=c&&c<=16d=(i-c)*1;if d>0eff(i,1)=eff(i,1)+d;else eff(i,2)=eff(i,2)+d;endelse if 17<=c&&c<=32d=(i-16)*1+(16-c)*4;eff(i,2)=eff(i,2)+d;else if 33<=c&&c<=48d=(i-16)*1-16*4+(32-c)*8;eff(i,2)=eff(i,2)+d;endendendendif 17<=i&&i<=32if 1<=c&&c<=16d=(i-17)*1+(17-c)*4;eff(i,1)=eff(i,1)+d;else if 17<=c&&c<=32d=(i-c)*1;if d>0eff(i,1)=eff(i,1)+d;else eff(i,2)=eff(i,2)+d;endelse if 33<=c&&c<=48d=(32-i)*1+(c-32)*4;eff(i,2)=eff(i,2)+d;endendendendif 33<=i&&i<=48if 1<=c&&c<=16d=(i-33)*1+16*4+(17-c)*8;eff(i,1)=eff(i,1)+d;else if 17<=c&&c<=32d=(i-33)*1+(33-c)*4;eff(i,1)=eff(i,1)+d;else if 33<=c&&c<=48d=(i-c)*1;if d>0eff(i,1)=eff(i,1)+d;else eff(i,2)=eff(i,2)+d;endendendendend
endeffall(G,:)=sum(eff);
function Groupcompetition
global team
global xiaozu
global taotai16
for i=1:16a(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队丢球elsea(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队丢球 endb=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队丢球elsea(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队丢球endb=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队丢球elsea(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队丢球enda(:,10)=a(:,8)-a(:,9); %净胜球for j=1:3m=a(j,5);n=find(team(:,1)==m);team(n,5)=team(n,5)+1;endxiaozu(3*i-2:3*i,:)=a;for j=1:3if a(j,7)==2taotai16(2*i-1,:)=a(j,:);for k=1:3if a(k,7)==1taotai16(2*i,:)=a(k,:);endendendendfor m=1:2for k=m+1:3if a(m,10)<a(k,10)e=a(m,:);a(m,:)=a(k,:);a(k,:)=e;endendend
taotai16(2*i-1,:)=a(1,:);
taotai16(2*i,:)=a(2,:);
endtaotai16;xiaozu;team;
xuni=taotai16;
for i=1:32for j=i:32if xuni(i,4)<xuni(j,4)a=xuni(i,:);xuni(i,:)=xuni(j,:);xuni(j,:)=a;endend
end
for i=1:32if (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;endendendend
end
for i=1:32a=find(xuni(i,2)==taotai16(:,2));taotai16(a,11)=xuni(i,3);
end
xuni;
taotai16;team;
function Semifinal
global team
global taotai2
global taotaia=rand*(taotai2(1,4)+taotai2(3,4));if a<taotai2(1,4)taotai(1,:)= taotai2(1,:);taotai(3,:)=taotai2(3,:);elsetaotai(1,:)= taotai2(3,:);taotai(3,:)=taotai2(1,:);enda=rand*(taotai2(2,4)+taotai2(4,4));if a<taotai2(2,4)taotai(2,:)= taotai2(2,:);taotai(4,:)=taotai2(4,:);elsetaotai(2,:)= taotai2(4,:);taotai(4,:)=taotai2(2,:);end
for j=1:2m=taotai(j,2);n=find(team(:,1)==m);team(n,9)=team(n,9)+1;
end
taotai2;
taotai;
team;
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可
相关文章:

2018年第七届数学建模国际赛小美赛B题世界杯足球赛的赛制安排解题全过程文档及程序
2018年第七届数学建模国际赛小美赛 B题 世界杯足球赛的赛制安排 原题再现: 有32支球队参加国际足联世界杯决赛阶段的比赛。但从2026年开始,球队的数量将增加到48支。由于时间有限,一支球队不能打太多比赛。因此,国际足联提议改变…...

【为数据之道学习笔记】5-7五类数据主题联接的应用场景
在数字化转型的背景下,华为的数据消费已经不再局限于传统的报表分析,还要支持用户的自助分析、实时分析,通过数据的关联,支持业务的关联影响分析以及对目标对象做特征识别,进行特定业务范围圈定、差异化管理与决策等。…...

得帆信息创始人-张桐,受邀出席 BV百度风投AIGC主题论坛
近日,得帆信息创始人兼CEO张桐,作为百度风投被投代表企业创始人受邀出席“向未来,共成长” BV百度风投AIGC主题论坛。 与包括上海市徐汇区相关部门领导、百度集团相关事业部负责人及代表,以及来自国寿资本、中网投、麦顿投资的投资…...

云原生之深入解析减少Docker镜像大小的优化技巧
一、什么是 Docker? Docker 是一种容器引擎,可以在容器内运行一段代码,Docker 镜像是在任何地方运行应用程序而无需担心应用程序依赖性的方式。要构建镜像,docker 使用一个名为 Dockerfile 的文件,Dockerfile 是一个包…...

记一次java for循环改造多线程的操作
背景 今天在开发质量平台时需要获取某些数据,要请求公司某个工程的OpenAPI接口A。此接口为返回通用数据的接口,且接口本身的RT都在2~3秒之间。使用该接口,需要进行两次循环获取,然后对返回数据进行处理组装࿰…...
Java面试整理-Java复制
Java复制 在Java中,复制对象或数据通常涉及不同的场景和方法。以下是几种常见的复制情况及其相关方法: 基本数据类型的复制:基本数据类型(如int, double, char等)在Java中是通过值传递的。当你将一个基本数据类型的值赋给另一个变量时,实际上是创建了一个新的值。 int a …...

wsl kafka的简单应用
安装并配置单机版kafka所需环境 wsl2 环境可用性较高,如下介绍在该环境中安装单机版本kafka的详细过程。 启动命令行工具启动wsl:wsl --user root --cd ~,(以root用户启动,进入wsl后当前路径为~“用户主目录”&#…...

2023年国赛高教杯数学建模D题圈养湖羊的空间利用率解题全过程文档及程序
2023年国赛高教杯数学建模 D题 圈养湖羊的空间利用率 原题再现 规模化的圈养养殖场通常根据牲畜的性别和生长阶段分群饲养,适应不同种类、不同阶段的牲畜对空间的不同要求,以保障牲畜安全和健康;与此同时,也要尽量减少空间闲置所…...
Flink系列之:Table API Connectors之Raw Format
Flink系列之:Table API Connectors之Raw Format 一、Raw Format二、示例三、Format 参数四、数据类型映射 一、Raw Format Raw format 允许读写原始(基于字节)值作为单个列。注意: 这种格式将 null 值编码成 byte[] 类型的 null。这样在 ups…...

社交网络分析3:社交网络隐私攻击、保护的基本概念和方法 + 去匿名化技术 + 推理攻击技术 + k-匿名 + 基于聚类的隐私保护算法
社交网络分析3:社交网络隐私攻击、保护的基本概念和方法 去匿名化技术 推理攻击技术 k-匿名 基于聚类的隐私保护算法 写在最前面社交网络隐私泄露用户数据暴露的途径复杂行为的隐私风险技术发展带来的隐私挑战经济利益与数据售卖防范措施 社交网络 用户数据隐私…...

2023大湾区汽车创新大会在深圳坪山开幕
12月15日,2023大湾区汽车创新大会在深圳坪山开幕。 本次大会是由广东省科学技术厅、深圳市发展和改革委员会、深圳市工业和信息化局、中共深圳市新能源和智能网联汽车产业链委员会、坪山区人民政府指导,北京理工大学深圳汽车研究院、广东省大湾区新能源汽…...
Graylog 中日志级别及其对应的数字
在 Graylog 中,日志级别 level 通常使用数字表示,数字越低表示日志级别越高。以下是常见的日志级别及其对应的数字表示: DEBUG(调试):对应数字 7。INFO(信息):对应数字 …...

智能手表上的音频(五):录音
上篇讲了语音通话,本篇讲录音。录音功能就是把录到的音频保存成文件。保存文件的格式支持两种:一是PCM(16K采样)的WAV格式,二是AMR-NB(8k采样)的AMR格式。WAV格式简单:44字节的文件头PCM 数据,示…...

2023.12.17 关于 Redis 的特性和应用场景
目录 引言 Redis 特性 内存中存储数据 可编程性 可扩展性 持久化 支持集群 高可用性 Redis 优势 Redis 用作数据库 Redis 相较于 MySQL 优势 Redis 相较于 MySQL 劣势 Redis 用作缓存 典型场景 Redis 存储 session 信息 Redis 用作消息队列 初心 消息队列的…...

智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码
智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于社会群体算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.社会群体算法4.实验参数设定5.算法结果6.…...

Kotlin 笔记 -- Kotlin 语言特性的理解(二)
都是编译成字节码,为什么 Kotlin 能支持 Java 中没有的特性? kotlin 有哪些 Java 中没有的特性: 类型推断、可变性、可空性自动拆装箱、泛型数组高阶函数、DSL顶层函数、扩展函数、内联函数伴生对象、数据类、密封类、单例类接口代理、inter…...
数据结构【1】:数组专题
一、定义 数组是编程中一种强大的数据结构,它允许您存储和操作相同类型元素的集合。在 Python 中,数组是通过数组模块创建的,该模块提供了一个简单的接口来创建、操作和处理数组。 二、创建数组 在 Python 中,可以使用内置的 a…...

【Spring】Spring 事务
Spring 事务 文章目录 Spring 事务1. 简介2. Spring事务管理器3. 基本使用4. 属性剖析5. 声明式事务问题场景5.1 事务不生效5.2 事务不回滚5.3 大事务问题 6. 编程式事务 1. 简介 编程式事务:指手动编写程序来管理事务,即通过编写代码的方式直接控制事务…...

Ubuntu 虚拟机环境,编译AOSP源码
环境 : VMware虚拟机 Ubuntu 20.04.3 LTS 搭建配置开发环境 sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl…...

2023.12.18杂记
今天特地搜了一下国内不错的博客网站,本来想在掘金上写的,但是怕被人喷(,所以还是决定在csdn上写了哈哈哈。 这篇文章主要整理一下我今天写代码时遇到的疑惑以及记录一下思考过程吧。 第一个注意的地方,我们的get查询…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
Golang dig框架与GraphQL的完美结合
将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
船舶制造装配管理现状:装配工作依赖人工经验,装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书,但在实际执行中,工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

【Linux】Linux 系统默认的目录及作用说明
博主介绍:✌全网粉丝23W,CSDN博客专家、Java领域优质创作者,掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域✌ 技术范围:SpringBoot、SpringCloud、Vue、SSM、HTML、Nodejs、Python、MySQL、PostgreSQL、大数据、物…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...