2024美赛C题思路/代码:网球中的动量
美赛直播b站,提前关注:川川菜鸟
美赛辅导预定:美赛服务
去年美赛C题:2023美赛C题
题目翻译
背景
在2023年温布尔登男子单打决赛中,20岁的西班牙新星阿尔卡拉兹击败了36岁的诺瓦克·德约科维奇。这是德约科维奇自2013年以来在温布尔登的首次失利,也终结了这位历史上最伟大的网球运动员之一在大满贯赛事中的非凡纪录。
这场比赛本身是一场精彩的战斗。德约科维奇似乎注定要轻松获胜,因为他在首盘以6比1(其中赢得了7个发球局)主宰了比赛。第二盘同样轻松,最终以6比2赢得比赛。但第三盘成为了第一盘的完全相反,阿尔卡拉兹以6比1赢得比赛。这位年轻的西班牙选手似乎在第四盘开始时完全控制了比赛,但不知怎的,形势再次发生了变化,德约科维奇以6比3将比赛拖入决胜盘。最后一盘开始时德约科维奇带着从第四盘的优势进入,但再次出现了方向的变化,阿尔卡拉兹获得了胜利并以6比4取得了胜利。这场比赛的数据集中有一组数据,其“match_id”为“2023-wimbledon-1701”。你可以在数据集中查看德约科维奇在首盘占优时的所有得分点,当时“set_no”列的数字等于1。这场比赛令人难以置信的波动,有时是许多分数甚至是整个发球局的波动,在比赛的某些时刻似乎占据了优势,这通常被归因于“动量”。
关于动量的一种字典定义是“通过运动或一系列事件获得的力量或力量”。在体育比赛中,一个团队或玩家可能会感到他们有动量,或者是“势头力量”,但这很难在比赛/游戏中衡量。更进一步,如果存在动量,很难看出比赛中的各种事件是如何创造或改变动量的。
题目
提供了2023年温布尔登网球锦标赛男子单打前两轮每一分的数据。你可以根据自己的判断,选择包含额外的球员信息或其他数据,但你必须完整地记录数据来源。使用这些数据来:
- 开发一个模型,捕捉比赛中得分发生时的比赛流程,并将其应用到一场或多场比赛中。你的模型应该识别哪位球员在比赛中的某个时刻表现更好,以及他们表现得有多好。提供一个基于你的模型来描绘比赛流程的可视化图表。注意:在网球中,发球的球员赢得比赛的概率要高得多。你或许希望以某种方式将这一因素纳入你的模型中。
- 一位网球教练对“势头”在比赛中发挥任何作用持怀疑态度。相反,他认为,一位球员比赛中的表现波动和连胜都是随机的。使用你的模型/指标来评估这一说法。
- 教练们非常想知道是否有指标可以帮助确定比赛流程何时会从有利于一位球员变为有利于另一位球员。
3.1 使用至少一场比赛提供的数据,开发一个模型来预测这些比赛中的波动。有哪些因素似乎最相关(如果有的话)?
3.2 鉴于过去比赛中“势头”的波动差异,你如何建议一位球员进入针对不同球员的新比赛? - 在其他比赛中测试你开发的模型。你的模型预测比赛中的波动效果如何?如果模型有时表现不佳,你能识别出未来模型可能需要包含哪些因素吗?如何普遍化你的模型,使其能够用于未来的比赛(例如女子比赛)、不同的赛场表面以及其他体育项目,如乒乓球?
- 产生一份不超过25页的报告,概述你的发现,并包括一份至两页的备忘录,总结你的结果并提供建议,关于“势头”是什么,以及如何准备球员应对网球比赛中的势头变化。
提供文件
- Wimbledon_featured_matches.csv —— 2023年温布尔登网球锦标赛男子单打第二轮之后的数据集。
- data_dictionary.csv —— 数据集的描述。
- data_examples —— 帮助理解所提供数据的示例。
数据描述
例子1:
- match_id - “2023-wimbledon-1301” 表示这是第三轮比赛中的第一个比赛,"01"表示这是那一轮的第一个比赛。
- elapsed_time - “0:01:31” 表示从比赛开始到现在过去了一分钟三十一秒。
- point_no, game_no, set_no - “4, 1, 1” 表示这是第一盘的第一局的第四分。
- pl_sets, p2_sets, p1_games, p2_games - “0, 0, 0, 0” 表示这是比赛的第一局,所以两位选手都还没有赢得任何盘或局。
- p1_score, p2_score - “15, 30” 表示这一分的时候,选手1的得分是15,选手2的得分是30。所以,选手1赢得了之前的一分,而选手2赢得了两分。
- server - “1” 表示选手1(Alcaraz)在这一分发球。
- serve_no - “1” 表示这是第一次发球。
- point_victor - “1” 表示这一分是选手1(Alcaraz)赢得的。
- p1_points_won, p2_points_won - “2, 2” 表示在这一分之后,两位选手在整个比赛中各自赢得了两分。
- game_victor, set_victor - “0, 0” 表示这一分的赢家并没有使任何一方赢得这一局或这一盘。
- p1_winner - “1” 表示这一分是选手1赢得的。
- p1_ace - “0” 表示这一分不是通过发球得分(Ace)赢得的。
- winner_shot_type - “F” 表示赢得这一分的是一个正手击球(而不是反手)。
- p2_net_pt - “1” 表示选手2(Jarry)在这一分的某个时刻接近了网前。
- p2_net_pt_won - “0” 表示尽管Jarry在网前,但是这一分没能赢得。
- p1_distance_run, p2_distance_run - “51.108, 75.631” 表示在这一分中,每位选手分别跑了51.108米和75.631米。
- rally_count - “13” 表示这一分中两位选手合计击球了13次。
- speed_mph, serve_width, serve_depth, return_depth - “130, BW, CTL, D” 表示Alcaraz(发球者)以130英里每小时的速度发出了一次“Body Wide”的发球,而接发球者(之前我们看到了一个第一发球)将球打回了“Deep”在球场的另一端。
例2:
这部分表格展示了网球比赛第一局最后四分的情况,演示了平分(“deuce”)和优势(“ad”)的概念。每一行代表比赛中的一个接下来的分数。
第8行:
- p1_score, p2_score - “40, 40” 表示比分是40平,这也叫做“deuce”,每个选手已经赢了3个分。
- point_victor - “1” 表示选手1(Alcaraz)赢得了这一分(在第8行)。
第9行:
- p1_score, p2_score - “AD, 40” 因为Alcaraz赢了前一个分数(第7分),所以第8分的比分现在是对Alcaraz的“AD”和对Jarry的“40”,意味着Alcaraz已经赢了另外一个分数,如果他赢得下一个分数就能赢得这一局。
- point_victor - “2” 表示Jarry(选手2)赢得了第9行的这一分。
第10行:
- p1_score, p2_score - “40, 40” 比分又回到了40平,这意味着每个选手都赢了相同数量的前面几分,尽管现在是各自4分。
- point_victor - “1” 表示Alcaraz赢得了第10行的这一分。
第11行:
- p1_score, p2_score - “AD, 40” Alcaraz又一次获得了优势,因为他赢得了第9分。
- point_victor - “1” 表示Alcaraz在第11行赢得了这一分,这意味着他赢得了这一局(现在他已经赢了两分)。
第12行:
- game_no - “2” 这是第二局的第一个分。
- p1_games - “1” 表示Alcaraz赢得了第一局。
网球比赛中的第51分,演示了“破发点”——即非发球方(接发球方)有机会赢得这一局的情形。
第51行:
- p1_score, p2_score - “40, 30” 表示比分是40比30,选手1(Alcaraz)领先。
- server - “2” 表示Jarry(选手2)在发球。
- p1_break_pt - “1” 如果Alcaraz赢得这一分,他就将赢得这个游戏;因为他不是发球方,所以这是一个“破发点”。
- point_victor - “1” 表示Alcaraz赢得了这个分数(因此赢得了这局比赛)。
- p1_break_pt_won - “1” 表示Alcaraz赢得了这局比赛,并且他不是这一分的发球方。
术语表
- 大满贯(Grand Slam):在网球中,大满贯是指在一个日历年中赢得四大主要锦标赛中的同一个单项赛事的成就。四大满贯赛事包括澳大利亚公开赛、法国公开赛、温布尔登锦标赛和美国公开赛,每个赛事持续两周。
术语表/关键术语概念
记分制:
- 比赛:男子单打比赛为五盘三胜制(在温布尔登网球锦标赛中)
- 盘:一系列局,6局赢一盘,但球员必须以两局以上的优势获胜
- 局:一系列分,球员达到4分获胜,但必须以两分以上的优势走赢。详情见下文“一个局的记分方式”
一个局的记分方式:
一个局的记分方式:
- 0分 = Love
- 1分 = 15分
- 2分 = 30分
- 3分 = 40分
- 平分比如“30平”
- 40比40 = Deuce(双方分数相同,至少各有3分)
- 服务器赢得平分局得分 = Adv-in(或称“优势局内”)
- 接球方赢得平分局得分 = Adv-out(或称“优势局外”)
发球:
球员轮流担任“发球者”(打出局的第一球的球员)和“接球者”。在职业网球中,发球者通常拥有很大优势。发球者每个分有两机会将球打入球场(进入“发球区”)。如果两次尝试都未能让发球落在球场内,则被判“双误”而丢分,对方获得分数。
- 破发:接球方赢得一个局。
- 破发点:如果接球方赢得该分,他们将赢得该局。
- 保发:发球方赢得该局。
抢七局:
每个盘在一方赢得6局且至少领先两局时结束(比如6比4)。如果没有,比赛继续进行,直到比分达到6比6,然后进行抢七局在温布尔登,抢七局首先得到7分(必须领先2分)除非是比赛的第五盘,那时抢七局必须首先得到10分(必须领先2分)。
休息时间/换边:
每打完一局后,球员更换球场一边,然后每两局后再次更换。每局结束后允许90秒休息时间,球员在每个盘结束后的首次换边时也享有此休息。每个盘结束后至少休息2分钟。比赛中允许医疗暂停和一次卫生间休息。
问题一
思路
待定
模型
待定
程序
待定
问题二
待定
思路
待定
模型
待定
程序
待定
相关文章:

2024美赛C题思路/代码:网球中的动量
美赛直播b站,提前关注:川川菜鸟 美赛辅导预定:美赛服务 去年美赛C题:2023美赛C题 题目翻译 背景 在2023年温布尔登男子单打决赛中,20岁的西班牙新星阿尔卡拉兹击败了36岁的诺瓦克德约科维奇。这是德约科维奇自201…...

ConcurrentHashMap原理详解(太细了)
一、什么是ConcurrentHashMap ConcurrentHashMap和HashMap一样,是一个存放键值对的容器。使用hash算法来获取值的地址,因此时间复杂度是O(1)。查询非常快。 同时,ConcurrentHashMap是线程安全的HashMap。专门用于多线程环境。 二、Concurre…...

EasyExcel根据对应的实体类模板完成多个sheet的写入与读取
1.展示模板一的实体类 import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.ColumnWidth; import com.alibaba.excel.annotation.write.style.ContentRowHeight; import com.alibaba.excel.annotation.write.style.HeadRowH…...

在企业数字化转型过程中,IT运维发挥着怎样的价值?
IT运维软件在企业数字化转型中发挥着重要的价值。从效率、稳定性、安全性和资源利用率以及数据分析决策支持都有巨大的提升。 提高效率 利用自动化巡检功能,实时或定时进行系统巡检,减少人力巡检的繁琐和低效,避免手动操作的失误,…...

01-工厂模式 ( Factory Pattern )
工厂模式 Factory Pattern 摘要实现范例 工厂模式(Factory Pattern)提供了一种创建对象的最佳方式 工厂模式在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象 工厂模式属于创建型模式 摘要 1. 意图 …...

【LeetCode】每日一题 2024_2_2 石子游戏 VI(排序、贪心)
文章目录 LeetCode?启动!!!题目:石子游戏 VI题目描述代码与解题思路 LeetCode?启动!!! 题目:石子游戏 VI 题目链接:1686. 石子游戏 VI 题目描述…...

一站式在线协作开源办公软件ONLYOFFICE,协作更安全更便捷
1、ONLYOFFICE是什么? ONLYOFFICE是一款功能强大的在线协作办公软件,可以创建编辑Word文档、Excel电子表格,PowerPoint(PPT)演示文稿、Forms表单等多种文件。ONLYOFFICE支持多个平台,无论使用的是 Windows、…...

Java进击框架:Spring-综合(十)
Java进击框架:Spring-综合(十) 前言Rest ClientsWebClientRestTemplateHTTP接口 JMS (Java消息服务)使用Spring JMS发送消息接收消息注释驱动的侦听器端点 JMXEmail任务执行和调度Spring TaskExecutor 抽象Spring TaskScheduler 抽象支持调度…...

2024年第九届信号与图像处理国际会议(ICSIP 2024)
2024第九届信号与图像处理国际会议(ICSIP 2024)将于2024年7月12-14日在中国南京召开。ICSIP每年召开一次,在过去的七年中吸引了1200多名与会者,是展示信号和图像处理领域最新进展的领先国际会议之一。本次将汇集来自亚太国家、北美…...

webassembly003 MINISIT mnist/convert-h5-to-ggml.py
数据结构 # Convert MNIS h5 transformer model to ggml format # # Load the (state_dict) saved model using PyTorch # Iterate over all variables and write them to a binary file. # # For each variable, write the following: # - Number of dimensions (int) # …...

fetch和axios的区别
概念不同 Fetch是一种新的获取资源的接口方式,可以直接使用Axios是一个基于XMLHttpRequest封装的工具包,需要引入才可以使用 传递数据的方式不同 Fetch则是需要放在body属性中,以字符串的方式进行传递Axios是放到data属性里,以对象…...

【unity小技巧】FPS简单的射击换挡瞄准动画控制
文章目录 射击动画控制换弹动画瞄准动画完结 射击动画控制 换弹动画 调用 瞄准动画 问题:瞄准时,但是动画会卡住,不会播放瞄准的待机动画 修改 调用 动画如果太快可以去修改播放速度 播放速度变慢了,可能导致切换待机动画也…...

如何获取时间戳
在JavaScript中,你可以使用Date对象来获取时间戳。以下是一个例子: javascriptvar timestamp new Date().getTime(); console.log(timestamp); 在这个例子中,new Date()创建了一个新的日期对象,.getTime()方法则返回自1970年1月…...

VSCode 设置代理
Open Visual Studio Code, click the settings icon in the lower left corner, and click Settings....

保姆级教程: 零门槛制作AI微信红包封面之入门篇
写在前面 本文旨在低门槛制作微信红包教程,人人均可上手! 操作步骤 AI红包制作平台: https://cover.fdfs.site 第一步: 先登录 alt text 可以使用谷歌,github直接登录,也可以用自己的邮箱注册 第二步: 设置自己的apiKey API-Key可以从平台 ht…...

Redis核心技术与实战【学习笔记】 - 17.Redis 缓存异常:缓存雪崩、击穿、穿透
概述 Redis 的缓存异常问题,除了数据不一致问题外,还会面临其他三个问题,分别是缓存雪崩、缓存击穿、缓存穿透。这三个问题,一旦发生,会导致大量的请求积压到数据库。若并发量很大,就会导致数据库宕机或故…...

Leetcode—2670. 找出不同元素数目差数组【简单】
2024每日刷题(一零七) Leetcode—2670. 找出不同元素数目差数组 哈希表实现代码 class Solution { public:vector<int> distinctDifferenceArray(vector<int>& nums) {unordered_set<int> s;int n nums.size();vector<int&g…...

App ICP备案获取iOS和Android的公钥和证书指纹
依照《工业和信息化部关于开展移动互联网应用程序备案工作的通知》,向iOS和安卓平台提交App时需要先提交ICP备案信息。 iOS平台: 1、下载appuploader工具:Appuploader home -- A tool improve ios develop efficiency such as submit ipa to…...

猿创征文 | 项目整合KafkaStream实现文章热度实时计算
个人简介: > 📦个人主页:赵四司机 > 🏆学习方向:JAVA后端开发 > ⏰往期文章:SpringBoot项目整合微信支付 > 🔔博主推荐网站:牛客网 刷题|面试|找工作神器 > &#…...

状态压缩 笔记
棋盘式的f[i][j]中表示状态的j可以是状态本身也可以是在合法状态state中的下标 用状态本身比较方便,用下标比较省空间 用下标的话可以开id[M]数组记录一下 蒙德里安的梦想 求把 NM的棋盘分割成若干个 12的长方形,有多少种方案。 例如当 N2࿰…...

Java 数据结构篇-实现二叉搜索树的核心方法
🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 二叉搜索树的概述 2.0 二叉搜索树的成员变量及其构造方法 3.0 实现二叉树的核心接口 3.1 实现二叉搜索树 - 获取值 get(int key) 3.2 实现二叉搜索树 - 获取最小…...

go语言(二十一)---- channel的关闭
channel不像文件一样需要经常去关闭,只有当你确实没有任何发送数据了,或者你想显示的结束range循环之类的,才去关闭channel。关闭channel后,无法向channel再发送数据,(引发pannic错误后,导致接收…...

【PyQt】01-PyQt下载
文章目录 前言静态库 一、PyQt是什么?二、安装1.Windows环境下安装安装PyQt5Designer 2.Liunx环境下安装 总结 前言 拜吾师 PyQt5 快速入门 静态库 补充一点知识: Windows: .lib Linux: .a .so(动态库) 简单描述PyQt就是python调用C的Qt文…...

不一样的味觉体验:精酿啤酒与烤肉的绝妙搭配
在繁华的都市生活中,人们总是在寻找那份与众不同的味觉享受。当夏日的微风轻轻拂过,你是否想过,与三五好友围坐在一起,拿着Fendi Club啤酒与烤肉的绝妙搭配,畅谈生活点滴,感受那份惬意与自在? F…...

linux系统ansible的jiaja2的语法和简单剧本编写
jianja2语法和简单剧本 jinja2语法Jinja default()设定if语句for语句 ansiblejiaja2的使用ansible目录结构:tasks目录下文件内容:nginx模板文件ansible变量文件ansible主playbook文件测试并执行:查看检测执行结果 剧本编写安装apache安装mysq…...

Three.js PBR 物理渲染
详解 Three.js PBR 物理渲染 Three.js 是一个流行的基于 WebGL 的 JavaScript 库,专门用于创建和运行三维动画和游戏。其中很关键的一部分是物理渲染(PBR)。本文将深入探讨 Three.js 的 PBR 渲染,并为初学者提供实用的指导。 什…...

POSIX(包含程序的可移植性) -- 详解
1. 什么是 POSIX 参考链接–知乎 POSIX 标准包含了进程管理、文件管理、网络通信、线程和同步、信号处理等方面的功能。 这些接口定义了函数、数据类型和常量等,为开发者提供了一个可移植的方法来与操作系统进行交互。 2. 谁遵守这个标准 遵守 POSIX 标准的主要是…...

Jmeter学习系列之五:基础线程组(Thread Group)
前言 线程组是一系列线程的集合,每一个线程代表着一个正在使用应用程序的用户。在 jmeter 中,每个线程意味着模拟一个真实用户向服务器发起请求。 在 jmeter 中,线程组组件运行用户设置线程数量、初始化方式等等配置。 例如,如果你设置线程数为 100,那么 jmeter 将创建…...

Android 双卡适配 subId 相关方法
业务场景 双卡设备进行网络等业务时,需要正确操作对应的卡。 执行卡业务和主要是使用subId和 PhoneId/SlotId进行区分隔离。 代码举例 初始化subId //初始化subId private int mSubId SubscriptionManager.INVALID_SUBSCRIPTION_ID;//1、通过intent传值&#x…...

使用Logstash将MySQL中的数据同步至Elasticsearch
目录 1 使用docker安装ELK 1.1 安装Elasticsearch 1.2 安装Kibana 1.3 安装Logstash 2 数据同步 2.1 准备MySQL表和数据 2.2 运行Logstash 2.3 测试 3 Logstash报错(踩坑)记录 3.1 记录一 3.1.1 报错信息 3.1.2 报错原因 3.1.3 解决方案 3.2 记录二 3.2.1 报错信…...