首页 > 其他分享 >羽毛球模拟

羽毛球模拟

时间:2023-12-18 21:59:37浏览次数:29  
标签:winsB winsA return probB probA print 羽毛球 模拟

代码:

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 simNGames(n, probA, probB):
winsA, winsB = 0, 0
for i in range(n): #将模拟n场比赛分解为n次模拟一场比赛
scoreA, scoreB = simOneGame(probA, probB)
if scoreA > scoreB:
winsA += 1
else:
winsB += 1
return winsA, winsB
def printSummary(winsA, winsB):
n = winsA + winsB
print("羽毛球比赛分析开始,共模拟{}场比赛".format(n))
print("选手A获胜{}场比赛,占比{:0.1%}".format(winsA, winsA/n))
0.8
print("选手B获胜{}场比赛,占比{:0.1%}".format(winsB, winsB/n))
def main():
printIntro()
probA, probB, n = getInputs()
winsA, winsB = simNGames(n, probA, probB)
printSummary(winsA, winsB)
#第二阶段
def simOneGame(probA, probB):
scoreA, scoreB = 0, 0
serving = "A"
while not gameOver(scoreA, scoreB):
if serving == "A":
if random() < probA:
scoreA += 1
else:
serving="B"
else:
if random() < probB:
scoreB += 1
else:
serving="A"
return scoreA, scoreB
#第三阶段
def gameOver(a,b):
if (a>=20 and b>=20):
if(abs(a-b)==2 and a<=29 and b<=29):
return True

else:
return a==30 or b==30
else:
return False

main()
print("学号尾数为29")


 

标签:winsB,winsA,return,probB,probA,print,羽毛球,模拟
From: https://www.cnblogs.com/xiaozhang-nulibanzhuan-ing/p/17912368.html

相关文章

  • python模拟体育竞技分析
    采用排球比赛规则点击查看代码fromrandomimportrandomdefprintInfo():#打印程序介绍信息print('这个程序模拟两个选手A和B的某种竞技比赛')print('程序运行需要A和B的能力值(以0到1之间的小数表示)')defgetInputs():#获得程序运行参数a=eval......
  • 羽毛球比赛
      print('学号后两位:18')print('22信计1马樱萁,2022310143018')deffirst():print("这个程序模拟两个选手A和B的羽毛球竞技比赛")print("程序运行需要A和B的能力值(以0到1之间的小数表示)")defsecond():a=float(input("请输入选手A的能力值(0-1):"))b=fl......
  • 模拟登录之web监控
    1.什么是web监控zabbix除了能通过脚本+自定义key,实现服务器数据提取监控以外也支持对网页的HTTP请求、响应监控。2.web监控需求以zabbix-UI页面的登录监控,模拟登录,输入账号密码,实现首页的健康监控。1.模拟登录输入zabbix账号密码,登录后台,如果登录失败就报警2.基于响......
  • 【反转子链表】模拟题
    leetcode92.反转链表II题意:反转链表的[left,right],返回链表表头题解:直接模拟删除的过程即可定义重要节点记录left位置的节点为lnode,right位置的节点为rnodelnode的前驱节点为pre,right位置的后继节点为suc初始化pre=suc=lnode=rnode=原链表表头前的虚拟节点......
  • 模拟体育竞技
    #打印程序介绍信息defprintIntro():print("学号40")print("这是乒乓球个人赛模拟程序:")#获得程序运行参数defgetInputs():a=eval(input("请输入队伍A的能力值(0-1):"))b=eval(input("请输入队伍B的能力值(0-1):"))n=eval(input("模拟比赛的场次:......
  • 模拟体育竞技分析--乒乓球比赛规则
    defprintIntro():print("这个程序模拟两个选手A和B的乒乓球比赛")print("程序运行需要A和B的能力值(以0到1之间的小数表示)")print("学号后两位数字:32")defprintInputs():a=eval(input("请输入选手A的能力值(0-1):"))b=eval(input("请输入选手B的能力......
  • 排球比赛模拟
    代码importrandomdefprint_intro():print("排球比赛模拟程序")print("-------------------------------")definput_teams():team1_ability=float(input("请输入第一个球队的能力值:"))team2_ability=float(input("请输入第二个球队的能力值:"......
  • 模拟比特洪流协议
    一、实验目标      首先将一个图形文件划分成指定大小的数据块。在一台主机下模拟五个应用进程,其中有四个peer,分别为peer1,peer2,peer3,peer4,还有一个tracker。将上述的图片数据块按要求分配到三个节点(peer1,peer2,peer3)上,peer4从tracker上获取三个节点的数据块信息。最......
  • 18.adb 模拟按键操作
    adb模拟手机按键1、打开【指针位置】设置2、执行 adbshellinput 命令模拟点击事件adbshelltapx坐标y坐标模拟输入事件adbshellinputtext<输入内容>模拟滑动事件adbshellswipe<起点x><起点y><终点x><终点y><滑动时长>模拟手机按键返回键:adbshell......
  • 2023.12.16模拟赛总结
    这次比赛打的好,但又不好,200pts,rank4,但原本可以360pts的T1每一条边减去端点贡献,最小生成树即可T2从小到大枚举花瓣数,然后对于每一列记录前四大的,防止不能转移,然后直接跑即可赛时打了一个线段树,被卡常+卡空间,hahahaT3暴力,先分解质因数,由于\(\varphi(p^k)=(p-1)p^{k-1}\),那么......