程序设计方法学
体育竞技分析
需求:如何科学分析体育竞技比赛
输入球员的水平,能否输出比赛成绩???
简单来说就是不断地进行比赛,最后选手的能力的而显示的输赢情况,会越来越精确
比赛规则
简单来说,两个人打乒乓球。
自定向下的方法:将总问题分解为很多个小问题,再划分为小问题,直到我们可以解决这个小问题,
自底向上的执行,分别执行每一个实际单元,进行测试,测试通过,组合测试。也就是小问题测试没问题,就合并另一个小问题称谓一个略大的问题,再进行测试,通过,再合并再测试。
程序总体框架及步骤:
- 打印程序的介绍性信息 -》printInfo()
- 获得程序运行的参数 -》getInput()
- 利用球员A和球员B的能力值,模拟N局比赛 -》 simNGames()
- 输出球员A和球员B获胜比赛的场次及概率 -》 printSummary()
定义四个函数来完成以上的功能。
printIntro():打印一些介绍函数
from random import random
def printIntro():
print("这个程序模拟 两个选手A和B的某种竞技比赛")
print("程序运行需要A和B的能力值(以0到1之间的小数表示)")
#获得用户输入的参数
def getInputs():
a = eval(input("请输入选手A的能力值(0-1)"))
b = eval(input("请输入选手B的能力值(0-1)"))
n = eval(input("模拟比赛的场次"))
return a,b,n
#打印结果
def printSummary(winsA,winsB):
n = winsA + winsB
print("竞技分析开始,共模拟{}场比赛".format(n))
print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA,winsA/n))
print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB,winsB/n))
#模拟N局 分解为模拟一局比赛