首页 > 其他分享 >体育竞技模拟

体育竞技模拟

时间:2023-11-20 21:23:28浏览次数:22  
标签: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):
scoreA, scoreB = simOneGame(probA, probB)
if scoreA > scoreB:
winsA += 1
else:
winsB += 1
return winsA, winsB
def gameOver(a,b):
if a == 11 and b<=9:
return True
elif b == 11 and a<=9:
return True
elif a >=10 and b>= 10 and a-b==2:
return True
elif a >= 10 and b >=10 and b-a == 2:
return True
else :
return False

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 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))
def main():
printIntro()
probA, probB, n = getInputs()
winsA, winsB = simNGames(n, probA, probB)
printSummary(winsA, winsB)
print("学号后四位:3141")
main()

 

标签:winsB,winsA,return,probB,probA,print,体育竞技,模拟
From: https://www.cnblogs.com/Housesnurse/p/17844890.html

相关文章

  • android更改模拟器下载地址以及模拟器基本命令
    一、修改模拟器下载地址模拟器存放默认路径:C:\Users\Administrator\.android\avd修改模拟器存放路径:点击androidstudio中的help--- EditCustomProperties 在弹出的文本框里输入你要存放的路径,保存即可ANDROID_AVD_HOME=D:\\二、模拟器常用命令查看模拟器列表......
  • 模拟集成电路设计系列博客——4.1.1 Gm-C滤波器基本单元
    4.1.1Gm-C滤波器基本单元积分器是大部分连续时间滤波器的主要组成单元。为了实现\(G_m-C\)滤波器中的积分器,可以使用如下图所示将一个跨导器和一个电容进行连接。跨导器首先是一个跨导单元(输入电压产生输出电流)此外还需要输出电流和输入电压呈线性关系。因此,跨导器的输出\(i_o\)......
  • #yyds干货盘点#VueRouter模拟实现
    hash模式URL中#号后面的内容作为路径地址监听hashchange事件根据当前路与地址找到对应的组件重新渲染history模式通过history.pushState()方法改变地址栏监听popstate事件根据当前路由地址找到对应组件重新渲染基本使用//1.注册路由插件Vue.use(VueRouter)//2.创建router对......
  • EtherCAT转Modbus网关用Modbus Slave模拟从站配置案例
    EtherCAT转Modbus网关用ModbusSlave模拟从站配置案例兴达易控EtherCAT转Modbus网关可以用作Modbus从站的配置。EtherCAT转Modbus网关允许Modbus协议转换为EtherCAT,实现不同通信系统之间的互操作性。通过配置从站到网关的Modbus,您可以访问和控制Modbus设备。同时,网关还可以扩展M......
  • 建设招商农业邮政工商一体化模拟器,回执单转账余额截图都可以,JAVA模拟代码!
    闲着用JAVA研究了一个模拟器,但是我加了水印的,这个你做不了啥坏事,主要就是学习一下我写的代码和代码的实现逻辑,包括“主类和模块”还有“截图生成模块”以及“信息的输入和处理”三大模块,说复杂不复杂,说简单也不简单,下面框架图是网上找的,需要和代码相互结合才能实现具体的效果。UI......
  • 农业建设工商招商邮政银行一体化模拟器,余额回执单转账,JDBC或JPA集成开源
    JDBC或JPA集成开发的一个模拟器,一体化的,仅供娱乐使用,代码我之前就开发好了,模版当然也是网上找的,非常多,我这个加了水印,不加水印我也不敢发,平台也不会通过,然后代码是JAVA+JDBC或JPA集成开发的,这个不带db数据库,所以打开户修改重启软件不带记忆功能的,我就分享下代码逻辑,不分享软件的下......
  • C++AVL树和红黑树的模拟实现
    前言在二叉树的基础上,为了让搜索更加快捷,出现的二叉搜索树,二叉搜索树规定,二叉树的左子树的值一定都小于其父亲节点的值,所有右子树的值一定都大于其父亲节点的值,这样就保证了在查找某一个数据时,让时间复杂度最低为变为logn。一、二叉树两种特殊的二叉树1.满二叉树满二叉树每层的节......
  • LY1467 [ 20231113 NOIP 模拟赛 T3 ] Remember11
    题意给定\(n\)个数,求将她们收尾拼接形成\(11\)的倍数的方案数。Sol数数题。众所周知,是\(11\)的倍数意味着将该数错位相减\(mod11=0\)。注意到偶数位数的数与奇数位数的数的贡献是不同的。考虑将她们分开计算,然后合并。设\(f_{ijk}\)表示前\(i\)个奇数,其中有......
  • 无涯教程-RSpec - 模拟对象
    在本章中,无涯教程将讨论RSpecDoubles,RSpecDouble是一个模拟对象,在代码中模拟系统的另一个对象,方便测试。假设您为学校构建一个应用程序,有一个教室,还有一个学生。类定义如下:classClassRoomdefinitialize(students)@students=studentsenddeflis......
  • x86架构平台安装模拟arm架构系统
    最近工作中需要给ARM架构的服务器安装Python的Conda开发环境,而且服务器不能连接外网。手动安装有些繁琐,最方便的方式是在另一台相同配置的机器上安装好,然后将环境整体打包上传到服务器。但是我手头的电脑都是x86架构,在不购买云服务器的情况下,怎样才能弄一台ARM的机器呢......