最后一课:体育竞技问题分析

简介: 最后一课:体育竞技问题分析

最后一课:体育竞技问题分析

我们可以用计算机程序来模拟这场比赛,就像阿法狗的自我对弈一样,不过我们做的只是简化版。


输入:球员的水平

输出:  可预测的比赛成绩

体育竞技分析:模拟N场比赛


模拟抽象比赛过程+自动化执行程序



       首先设计一种比赛规则,双人击球比赛 A  B 两位选手和五局三胜的回合制,开始时一方先发球,直至判分,接下来胜者发球,第一局不得分,15分胜一局。注意:当模拟的场数N越大,比赛结果分析会越科学。



先介绍设计方法

自顶向下设计


       一个问题可以划分成小问题以及小问题之间的关系,体育竞技分析是根据球员的能力值进行比赛场次的预测,可以分为四个步骤:


步骤1:打印程序的介绍性信息式

           对应函数  -printInfo()


步骤2:获得程序运行参数:proA, proB, n              

           对应函数  -getInputs()


步骤3:利用球员A和B的能力值,模拟n局比赛    

           对应函数  -simNGames()


步骤4:输出球员A和B获胜的比赛的场次及概率    

           对应函数  -printSummary()



看第一阶段代码

image.png

       接下来我们再逐一的看每一个函数,看我们能否实现它


步骤1的程序

image.png

步骤2的程序

image.png

步骤4的程序

image.png


       来看步骤3, 模拟n局比赛,就是n次模拟一局比赛

image.png


看代码

image.png


       simOneGame是定义的模拟一次的分数,然后循环n次就可以获得n局比赛的结果。


   那我们怎么模拟一场比赛呢?




示例代码

image.png


       在一局比赛中,如果一方先获得15分 那么比赛结束。

image.png

       在模拟一局比赛时,双方根据能力值进行得分,那么能进行多少回合呢?我们又不知道了,所以定义一个gameOver()函数,来盘算一局比赛有没有结束。

image.png


完整代码如下

image.png

       这个程序是可以用的,上面那些分段的程序在结合起来的时候,可能会有变量定义的差异,反正你按照错误提示,肯定可以修改。




运行结果如下

image.png


       这是python语言的最后一个例子,这个例子主要教会一种思想——分解模块。一个大功能按照逐一的进行分解,不停的细分,同时注意参数的传递。


目录
相关文章
|
1月前
|
机器学习/深度学习 算法 数据可视化
2024美赛C题保姆级分析完整思路代码数据教学
2024美赛C题保姆级分析完整思路代码数据教学
30 0
|
6月前
|
测试技术
解决Bug应有的心态和解决方法的一些思路、方法和心得
永远要相信程序是不会骗你的,是自己在处理理逻辑中出问题,而在特定的环境中才会出现或者是自己压根就想不到情况下出现。 前几天在处理一个接口任务时,在测试环境跑是一点都没有,但在正式环境却没有将数据拉下来。没有报任何错误,一度怀疑、抱怨! 还好最后找到问题解决了!
33 0
|
8月前
|
SQL 消息中间件 搜索推荐
面试让人画正十七边形?面试官你长点心好不好?
面试让人画正十七边形?面试官你长点心好不好?
《运筹学基础》——第一遍通读
《运筹学基础》——第一遍通读
《运筹学基础》——第一遍通读
|
4月前
|
C语言
近期一系列个人做题反复记不住以及思路不清晰问题的总结
近期一系列个人做题反复记不住以及思路不清晰问题的总结
12 0
【动态规划上分复盘】这是你熟悉的地下城游戏吗?
【动态规划上分复盘】这是你熟悉的地下城游戏吗?
|
7月前
|
算法 搜索推荐 程序员
一文学会算法复杂度分析,面试再也不用愁了。
一文学会算法复杂度分析,面试再也不用愁了。
|
10月前
|
存储 Linux
还在担心期末挂科吗? 期末必备复习资料-----“树“的概念
还在担心期末挂科吗? 期末必备复习资料-----“树“的概念
97 0
|
11月前
四道好题分享(看似简单,但是棘手)
四道好题分享(看似简单,但是棘手)
68 0
|
机器学习/深度学习 算法
【有营养的算法笔记】基础算法 —— 快速排序思路梳理和常见错误拔毛
【有营养的算法笔记】基础算法 —— 快速排序思路梳理和常见错误拔毛
130 0
【有营养的算法笔记】基础算法 —— 快速排序思路梳理和常见错误拔毛

相关实验场景

更多